My favorite forms solution (for SPAs) is
https://github.com/final-form/final-form (there are adapters for React and Vue). The author has also written a previous form management tool called Redux Forms. Between the two versions (both are very good), you could tell the API evolution that the author had deep knowledge of the space, and the solution is pretty elegant.