Years ago, when people could only dream about browsing the internet on their phones and even the most popular websites looked quite rough, setting up the basics of your new site was relatively easy. The developers back there learned HTML, PHP, and CSS, and with this knowledge were already able to work out a website that could be considered a professional one.
These days, however, when it comes to developing a web project, it’s not that easy anymore. As websites stopped being straightforward portfolios or news catalogues and turned into highly advanced pieces of code, people started creating more and more ways of turning a project into reality. This means that now the job of a project lead, or even a company owner, is not only to gather a team of great developers but also to choose the technology this project will be built upon.
Because of this, we decided to provide a complex comparison of two commonly used JavaScript frameworks: Vue.JS vs. React.JS.* By the end of this piece, we aim to provide a definitive answer on which of these two, you should pick up for your next web project.
- React.JS is officially called a library, not a framework, but some consider the difference subtle. We have written more about it in our piece on React.JS vs Angular; Angular being another interesting choice among JavaScript frameworks. To keep it simple throughout this piece, we will stick with referring to both Vue and React as frameworks.
What are these?
To say it briefly, Vue and React are JavaScript frameworks dedicated to making the life of web developers easier and speeding up the process of turning an idea for an online project into reality. Both even launched in a very similar time — Vue was initially released roughly a year after React.
However, there is a significant difference in how these frameworks were brought to life. Vue, in the beginning, was a simple project of an ex-Google dev, Evan You. While working at Google, he was involved in projects related to Angular.JS, a framework established by this very company. After he finally left Silicon Valley’s giant, he decided to take the best (in his opinion) out of Angular, add some of his own ideas, and create even a better framework.
And that’s how Vue came into life. Although it’s not a one-person-project anymore, and there are tons of people involved in it now, it’s still considered a framework from the people to the people.
On the other hand, we have React, a framework — just like Angular — created by a big online giant. In this case, Facebook. Initially, React was created with Facebook’s own projects in mind, including their most popular product, the social media platform. Finally, however, the people responsible for React web development at the company managed to share their invention with a global audience.
What this Vue vs React difference could mean to you? Although both projects are now open-source (anyone can use them completely free of charge), the fact that Facebook is behind React, makes many trust the project more. As the company needs the framework for their own purposes, we can stay assured that its developers will keep it running and enhancing.
On the other hand, the development of Vue depends solely on its community. If its fans would turn to other frameworks instead, You’s project might not survive and get replaced by bigger players.
The similarities
Despite some differences in their story, Vue and React have a few things in common. As they both were created by really experienced developers, they are both built on some similar good practices.
Firstly, it is worth noting that both Vue and React make use of virtual DOM. DOM itself stands for Document Object Model and is an abstract API arranging different parts of an HTML document in the form of a tree (metaphorically speaking, of course). This setting allows programs to access the part of the document they might need easily.
What makes virtual DOM different from the regular one? In the case of the latter, the whole document gets updated when even the slightest change happens. However, when it comes to virtual DOM, what gets updated are only the parts of the document in which the change has happened. In other words, updates with virtual DOM are faster, and this makes the website/app run more smoothly. As both Vue and React make use of this idea, they are quite similar in terms of performance.
Both frameworks are also component-based. Components are small pieces of ready-to-use code which can be used in order to introduce some additional functionality to the app/website faster. For example, a developer doesn’t have to code a logging-in system from scratch — instead, they can use an adequate component and simply adjust it to their needs. This makes the whole development process more efficient.
The differences
Of course, there are some differences between the two frameworks. Here are a few technical ones that you might find interesting:
- For a few years, the advantage of React was React Native, a variation of the framework dedicated strictly to creating mobile apps. Vue community finally introduced something similar, Vue Native. However, it is not created by the official Vue team and is far less popular than its React alternative. Because of this, React is still considered better when it comes to developing mobile solutions.
- React is less opinionated, e.g., unlike Vue, it doesn’t force specific solutions for things like routing and state management. This makes React a more flexible framework, and that’s what many experienced developers like about it.
- The sizes of the framework are slightly different. React 16.2.0 + React DOM takes about 97.5 kb while Vue 2.4.2 58.8 kb. This potentially makes Vue somewhat faster, but the difference is not as huge as between React/Vue vs. other frameworks (e.g., Angular, which weights around 500 kb).
The learning curve
If you are planning a more significant web project, it means that you will probably have to involve plenty of developers. Even if you have the base of your site or web app built by experts from a good software house, you will probably need to do the additional upgrades and maintenance by yourself, after your business grows. This makes discussing the learning curve important in the case of the Vue vs. Regular battle.
Many experts consider Vue a solution easier to learn about. Some recommend even starting one’s journey with JavaScript frameworks with You’s solution. It is also considered easy to learn the basic ideas of Vue if the developer already worked with React or Angular. Transitioning from Vue to React may be, on the other hand, slightly harder.
But it’s not necessarily an advantage of Vue from a business perspective. Vue is easier to learn partly because it doesn’t put so many restrictions as React on the purely coding part of the job. This can lead to poorer code, potentially more difficult to debug. Combine this with an inexperienced developer, and you may end up in a situation where you dedicate more time to fix things than implementing the desired updates.
The community
When choosing the framework, it is also important to consider how big the community around it is. Let’s have a look at some 2018 data related to Vue vs. React.
| React | Vue |
% of developers knowledgeable in the framework | 25,77% | 10,32% |
% of developers wanting to learn the framework in 2019 | 32,63% | 24,70% |
% of Hiring Managers wishing to hire devs with knowledge in the framework | 38,38% | 18,47% |
(Based on the insights from over 70 thousand developers. Collected by HackerRank.)
As it can be easily seen, React is definitely more popular than Vue. Not only more people already know Facebook’s framework, but they also they still want to learn it on 2019. This popularity is fuelled up even more by the tech companies – more of them need a React web development expert than a Vue one.
Let’s compare it to some data from GitHub.
| React | Vue |
First release | 2013 | 2014 |
GitHub’s repository ranking | 3 | 5 |
No. of stars | 135k | 147k |
Contributors | 1325 | 279 |
Commits | 12339 | 3055 |
Branches | 33 | 34 |
Releases | 118 | 248 |
(React vs Vue GitHub data as of 31st of August 2019)
Personally, we would recommend having a look, especially at the number of contributors and the number of commits. These especially show the popularity of each framework. Once again, in the battle of Vue.JS vs React.JS, we name the second one a winner.
Turning community into business
Of course, when thinking about your own web project, you always want to know what other businesses are using the solution you are considering. And there is no better way to talk about it than by simply showing what other websites are making use of either React or Vue.
In the case of the first framework, one could, of course, name some of the Facebook products, like Facebook.com itself, or Instagram. However, among React.JS companies, you can also find:
- Netflix
- New York Times
- Codeacademy
- Atlassian
- Dropbox
We talk further about specific uses of Facebook’s framework in our separate piece on React.JS companies.
On the other hand, when it comes to Vue, the list includes:
- Xiaomi
- WizzAir
- Grammarly
- Behance
- Nintendo
As you can see, in this part of our Vue vs React battle, we have a draw, as both frameworks are used by multiple successful companies.
The verdict
Despite a few differences, React and Vue are quite similar frameworks, even in terms of their performance. Some developers might consider choosing one of them over the other simply because of their subjective preference.
We, however, recommend React instead of Vue based on facts. Most of our concerns are raised when looking at the community, popularity, and team behind each framework. Our main arguments for React are as follows:
- Facebook, the React company no. 1, continuously invests and improves their framework, making it a stable solution that will last years. On the other hand, Vue’s future, not being backed by any big corporation, depends solely on its community.
- There are more developers on the market with a good understanding of React than of Vue. Therefore, it’s easier to find a good coder when you use the first one.
- The online community of React is bigger than the one of Vue. This makes issues being solved and answers being answered faster.
- React Native is a great solution when looking to develop a mobile product.
All this — and the fact that we have experience in working with both frameworks — makes us prefer React over Vue. We usually recommend it when working with new clients looking for the best solution to handle their next online project.
And if you are looking for React web development experts yourself, our team at Ideamotive can help you out in turning your next idea into reality!
The post Vue vs. React – Which Should You Pick For Your Next Web Project? appeared first on Ideamotive.