Having made a Vue course, and having used React as well (note: I have plans to create a React course early next year), I think I know something more than the average developer that only used one or the other, or simply cannot choose between the two.
So, here are my impressions.
Both are equally great and fast
No difference in the technical details, they do the same thing and they both do it well.
Vue is more oriented at beginners
This is my impression.
React is trying to catch up with one of the best selling points of Vue.js which is that Vue is meant to be very approachable for newcomers. React, on the other hand, targets a slightly different audience, which is reflected in its documentation.
JSX is harder to “get” than a templating language. Vue, on the other hand, is similar to Angular — which makes migrating from Angular much simpler.
Vue is more of a complete package, React has lots of libraries to choose from
Major needs (like routing or state management) have official packages in Vue, while React leaves to libraries the freedom to battle for the most popular choice. This can either be good or bad, depending on your view on the subject.
I think that having an official package for a common need is very convenient, especially when this means that everything is kept in sync and changes to the overall system are thought holistically.
React has a much larger user base, and job opportunities as well
The React market share is huge. I won’t mention any kind of poll or research because it’s easy to search on Google for this up-to-date information.
Vue is growing as well, but if you want to specialize in a technology to get a job or more freelancing opportunities, React is definitely a bigger pond. Of course there are a lot more developers into this pond, and maybe the less popular Vue has more opportunities since there are less developers as well. Hard to say.
Vue is independent, React is run by Facebook
What’s the difference? I sometimes see in the React release notes (or in other places) things like “we have XXXXX React components at Facebook and…” or “at Facebook, bla bla..”. React is a byproduct of the engineers at Facebook. It’s not a standalone product, it will never be. If a particular need arises at Facebook that requires an addition or change to React, that will be introduced. This also means sometimes changes are made, and you are supposed to keep up with the rapid development or you are “left behind”.
This sounds great, but the problem is that 99.9% of the people don’t have the needs that Facebook has. Nowhere near that scale.
Vue on the other hand is run independently, it has no backing by a single corporation and I feel this is a better way to run an Open Source project that serves the community of developers. The roadmap prioritizes the community needs rather than the parent company needs.
This is my thought on the subject, I have no insider or first-hand information on how things actually work for those projects.