Last modified: November 28, 2017
Vue and React are two of the hottest options for UI development. While React is a UI component library backed by Facebook, Vue is a progressive UI framework used by companies like Alibaba and Baidu. In this article, we discuss the key similarities and differences between Vue and React.
Vue is a progressive web framework for building UIs. It was developed by Evan You, a former Google employee seeking to improve on the pitfalls of Angular.js. Vue combines traditional web technologies (HTML, CSS) with progressive concepts (reactive component, virtual DOM) to achieve a lightweight, easy to learn framework for UI development.
Through their implementation of the virtual DOM, both React and Vue share a superior performance advantage to more traditional libraries like jQuery and frameworks like Angular 1.
Both React and Vue maintain a focus on the development of the core library. Things like routing and state management are handled by companion libraries.
React and Vue both offer CLI tools for quickly generating projects.
While React and Vue both implement a virtual DOM, Vue takes a more intuitive and efficient approach to re-rendering. By default, React re-renders a component's entire sub-tree. Only by specifying shouldComponentUpdate can you manually control when sub-components should and shouldn't re-render. Vue automatically handles this and updates a component's dependencies when necessary. This takes the concern off the developer and maximizes the efficiency of virtual DOM diffing.
React has a richer ecosystem than Vue. While Vue is gaining traction quickly, it has a ways to go before it will be as popular as Facebook's React.
While React is arguably the most popular UI library used today, Vue is quickly becoming a formidable opponent. This is because Vue brings the same performance benefits to the table without all the extra bells and whistles (most notably build systems, JSX, and ES6). Vue is more lightweight and is easier for junior developers or those more familiar with traditional web technologies to pick up.
React still wins with a rich community and superior native rendering, but Vue is catching up with projects like Weex. It should also be noted that Vue supports JSX, Redux, and other popular React technologies. This leaves little reason to not at least explore Vue as a more lightweight option for UI rendering.