React, Flux, GraphQL, Hack, HHVM...? All of this and more!
Angular and React have been duking it out for the past few years, winning hearts and minds. But in the background a third option, Vue.js has grown in popularity. In some senses you could consider Vue.js as having the good parts of both Angular and React..
Both Vue.js and React rely on a tree like component model with reusable components. In this sense the two options are exactly the same in philosophy. Especially with the imminent release of the second major version of Vue.js 2.0, the componentisation continues to be a key part in the architecture of the view library.
React and Vue both are essentially view libraries that aim to help developers create User Interfaces in a declarative manner. Rather than doing direct DOM (Document Object Model) manipulation, developers can rely these libraries to do the heavy lifting. React was the first high-profile project boasting a Virtual DOM implementation, but many other projects now have this.
Many people relate React with superior performance. This comes from the time where DOM manipulation was slow and the React's Virtual DOM implementation ruled supreme. Since that time other projects now have better performance than React and browsers are better at handling DOM mutations fast, too. Vue.js 2.0 comes with a faster Virtual DOM implementation than React and has the upper hand over Vue.
There are a number of ways developers can write Vue.js code. They can use the JSX syntax that was introduced by React or use a more traditional template language with special attributes. JSX itself can be somewhat daunting at first and in this case the freedom of choice translates into the fact that Vue.js is probably faster for people to pick up.
The React ecosystem is a complex beast with tons and tons of extras available. This can be confusing, especially for a developer used to a full stack framework like Angular. Angular 2 may have it's ups and downs, but it's downright predictable in it's actions. Vue.js has official components from the development team that will allow to expand the view library with "official" routing and state management libraries to provide a coherent development environment.
All in all React continues to be a very powerful tool for developers of all sorts, but Vue.js is by no means inferior. In fact the lower learning curve can make it a better choice for beginner developers and in the long run there is no reason why a Vue.js application could not scale to the complexity that React apps can.
More reading: