Published: Jun 17, 2017
I use both Vue and React and I can compare them
In general it is more faster to write an user interface with Vue, I’d say with the speed of light
Vue has fewer ready-to-use components, but it is really fast to make your own component in the contrast with React. If you need to make a component from some third-party library, then it takes really several minutes, of course if you have enough experience.
HTML-like syntax in JS code (JSX) is a controversial feature of React, personally I like it. Vue templates are very beautiful, in some cases I’d prefer these templates and not JSX. Both approaches use a virtual DOM, which means eval-free code and more secure design.
According to many different benchmarks Vue is faster in the rendering. But I’d not say that you can notice this without special tools.
Redux defacto standard state-management in React has a high entry threshold, if you didn’t work before with a state machine, then it will take time to understand it. Vue state-management vuex is most likely cloned from Redux, nevertheless it is much more easier to understand, after a couple of training days you can write good-looking and working code.
Vue has a very beautiful official documentation, React has a turned inside out documentation. This is very subjectively and maybe this is only my imagination, but most of Facebook projects are over-complicated at times, including Facebook itself.
React-native allows to make mobile projects. There is no similar ability in Vue, maybe except Electron-like projects, but they don’t have that many libraries to access native API.
The main disadvantage of Vue: there is only one main contributor Evan You. He is great and very smart, his code rocks, but unfortunately there are no guarantees that tomorrow it will be good as today.
Both React and Vue are able to produce a very complicated stack-trace for an error. Sometimes it takes a lot of time to debug, just because internals of both libraries are not easy to understand. In my opinion it is more easier to make such bug in React.
Both libraries are not suitable if you want them as a quick replacement of your current library/framework for building user interfaces. I mean, of course, it is a good idea to refactor your code to use some modern library (like Vue or React). But they both are not compatible with other libraries and it will take time to refactor your code in any case.
React is more popular in the world of freelance development. Yes, React has many disadvantages, Vue is more smarter, but our reality is ugly and if you want a job, then it would be better to invest your time in React than in Vue.
Alexey Vasilyev
Freelance Software Developer, Father, Bread-maker, BBQ-master, Coffee-warrior, Mondays-hater