How do one make up their mind? And it sure depends on the technical requirements and therefore the solution will be different according to your needs. Thus, a technology can only be effective if it suits the following (mostly the Front End-related) criteria:
|Name||Core contributors||Contributors||Companies using the technology||Contributors from outer companies|
|React||15-20||945||Facebook, Instagram, Paypal, Netflix, DropBox, Walmart, Amazon Video, Ebay, Periscope, Pinterest, Vevo, Twitter Mobile etc. A complete list is quite long.||On React there are quite a few developers from other companies participate in the maintenance and evolution of React. This is a crucial project for Facebook.|
|Angular 2||20-25||406||There are no well-known companies yet on their list. The technology is quite recent.||Although there are not really any other companies as contributors, the Google team is enough.|
|Vue.js||1 person (Evan You, the author) as a core contributor||75||Laravel and Gitlab. For the moment, sites that use Vue are two sites for developers.||Project is completely based on the donations and projects related to Vue.js and therefore is very vulnerable, which has resulted in the fact that no big company had consequent projects on Vue.js in past years.|
Vue.js is the easiest regarding learning curve among the three which is an advantage that allows increasing the competence of freshmen. It’s the one that fits best in any frontend gradually, that's the advantage it has over React or Angular 2, so it should be maintainable on big projects.
React itself is simple but its ecosystem is more complex. It will take a PhD in Webpack, Babel, Redux, React-Router and so much more to complete your project.
Unlike Vue.js, or Angular 2, maintainability level with the React ecosystem comes with mastery and technical excellence. The architecture of a React project can be done in many ways, depending on the developer's experience.
Currently, both React and Vue have a Virtual DOM, which should increase performance.
After Angular 2 has gone under performance-improving changes it has the same performance as Vue.js. since they both support two-way binding, yet Angular 2 inflicts dirty checkings, which makes it harder to optimize.
Technically, Vue.js and Angular 2 have better performance than React, where the difference lays within milliseconds.
Vue.js has excellent performance and better memory allocation, but generally all the frameworks are really quite next to each other, compared to particularly slow or especially fast frameworks (e.g. Inferno). Yet, performance tests should be considered rather as auxiliary data, but not as a base for a decision-making. On the other hand, Vue.js is a risky gamble, because it is maintained mainly by a single person who is the author himself. And it's the only one of the three that can not be used to create a Native mobile app.
React's algorithm will completely change with Fiber, the complete redesign of React to reach 60 fps, to allow Facebook to do animations 60fps or even VR with React. This redesign does not affect the visible API. Now unlike the other two, it's no longer a standard reconciliation algorithm that's used, it's a concept they've named Fiber.
No framework offers the ultimate solution and also brings a lot of side issues. In the end, the choice of the framework must be made according to the correlation and suitability to your task. The suitability will also depend on the developer (what level of automation sought, the number of tools provided etc). The multitude of frameworks makes it possible to meet these needs.
As long as we deliver a good product and master the technology we use, it will always be the best choice.