Last modified: November 29, 2017
Although Vue.js was originally released in 2014, it has been largely overshadowed by libraries/frameworks like React and Angular over the past few years. This has been largely due to the rich ecosystems surrounding both React and Angular. Considering both React and Angular are backed by two of the world's largest tech companies (Facebook, Google), it is no surprise that Vue has been put on the back burner these past 3 years.
Since the release of Vue2, the framework has really gained popularity and is used by companies like Alibaba and Baidu.
Like React, Vue2 implements a Virtual DOM for updating UI elements. Vue's implementation of the Virtual DOM is superior for a few reasons. First, it's more efficient than React's. It identifies static class names, attributes, and sub trees to avoid unnecessary diffing when it re-renders elements. Second, its automatically optimized with little interaction needed from the developer. You don't have to worry about calling things like shouldComponentUdate with Vue's Virtual DOM.
One of the key advantages to Angular and React is their sever side rendering ability. This is especially important for SEO since pages are delivered as static content that web crawlers can more easily read.
Vue2 features server side rendering and does it better than React. Unlike React's synchronous model, Vue ensures responsive servers by not interrupting event loops.
While Vue leans more on traditional web technologies (HTML, CSS) for templates, Vue2 features optional integration support for JSX and rendering functions. In fact, you can interact directly with Vue's Virtual DOM by calling render() functions. You can even reference render() functions directly in your templates with Vue2.
Vue2 even includes typeScript typings, making it extremely flexible with the coding styles adopted by other frameworks (Angular 2).