React vs Vue – A Quick Comparison (2020 Update)
Last week we compared React vs Angular, which you can read here. Today I would like to help you choose between React and Vue.js.
What is React.js
Pros and cons of React.js
|Great UX||Lack of proper documentation|
|Popularity||The high pace of development|
|Shortened time to market|
If you want more detailed information on the pros and cons of React, we recommend reading this article.
Companies using React.js
What is Vue.js?
Vue.js can be characterised simply by three adjectives:
- Approachable – if you know HTML, CSS, and JS, all you have to read the guide and you are ready to go!
- Performant – thanks to three things: minimum optimisation, gzipped size of 20KB and virtual DOM.
- Versatile – its ecosystem is incrementally adaptable and scales easily between a library and a full-featured framework.
Pros and cons of Vue
|Adaptability||A small number of components and plugins|
|Better performance with smaller size||Closed community|
|Detailed documentation||Language barrier|
|Ease of integration||Limited features|
Companies using Vue.js
React vs Vue: Head-to-head comparison
|Developed by||Evan You|
|Model||Virtual DOM||Virtual DOM|
React vs Vue: Comparison
Every comparison requires to take a look not only at differences but also similarities. And React and Vue.js share some of them:
- Composable and reactive view components
- Concentration on a core library and handling routing and global state management with companion libraries
- Usage of virtual DOM
And now, let’s get to more detailed comparison in a few categories.
Vue.js is using two-way data binding. Whenever you change any element of the interface, your model state changes automatically too.
This sounds simple, but if you work on a large project and want to have a good data overview and debug easier, it is better to use React with one-way data binding. It renders the change in the interface element, only after the model state is updated first. And whenever you change the UI element, the model state stays the same with no changes.
Desktop and mobile development
If you use React and want to build native mobile applications working on Android and iOS, there is a platform called React Native. It’s a massive benefit for React developers because instead of learning a completely new technology, they can take advantage of existing skills.
Although Vue.js doesn’t have a dedicated platform like React Native, it doesn’t mean you can’t develop native applications. You can use either Weex (cross-platform UI framework) to create React Native-like platform or plugin called NativeScript-vue to build native applications.
However, React, and Vue have something in common – if you want to build desktop applications, you can use Electron with both of them.
JSX vs Templates
One of the reasons for the newcomers to choose Vue could be templates. They are based on HTML and easier to read and write to anyone that has been working with HTML before, especially when you come from Angular environment.
Another issue is that in a case of React, using third-party components is almost inevitable. And developers need to learn how to do that.
The critical thing about Vue is that it took the good parts out of React and Angular. Because of that, the developers with the experience in either of the two technologies have some advantage here.
Documentations of React and Vue are well-written, but the latter is considered as slightly better.
React clearly won this battle. It’s not surprising that it has a bigger community and popularity, because Facebook created and uses this technology.
To back up this claim, I prepared numbers collected from Stack Overflow, Google Trends and GitHub. Check them below.
|Most Loved Web Frameworks according to Stack Overflow 2020 Survey|
|Most Wanted Web Frameworks according to Stack Overflow 2020 Survey|
|React on GitHub||Vue on GitHub|
|Google Trends: Comparison between React vs Vue in the last 12 months|
|Google Trends: Comparison between React vs Vue in the last five years|
If you want to make a decision based on performance, I have to disappoint you – both React, and Vue.js can be proud of their similar, remarkable speed. However, if you would like to see specific metrics and numbers, you can go there.
If you are not sure which one you should choose