Choosing An Ideal UI Framework — A Comparison of Vue, React, and Angular

Mary Boyd
A Lady Dev
Published in
4 min readJan 31, 2018
Please enjoy this lovely stock photo of a stacked bar chart.

When evaluating options for a user interface JavaScript framework for your next application, it’s impossible to ignore the crowd favorites: Angular 2+, React, and Vue. I, and my fellow developers at my company, have experience with all three frameworks and are familiar with the benefits and limitations of each. Although Vue is the new kid on the block, we have seen great results using it in our recent projects. In addition to being lightweight, versatile, and easy to navigate during the build, Vue is capable of handling complex single-page applications and lends itself to impressive performance gains.

When starting to build a new application, it is important to consider the pros and cons of each framework and how they fit into the needs of the project. Below is a brief roundup of my thoughts on these popular frameworks and how they compare in terms of capabilities, ease of use, performance, and support.

Created by Google in 2010 and encompassing a thriving Q&A community, Angular’s rapid front-end development capabilities, two-way data binding, and easy testing features make it a solid choice for complex, enterprise-level projects. Since it’s been around a long time, support and tutorials can be found for almost any issue. When building a large-scale app, Angular’s strict MVVM model ensures separation of the data from the design and view, making the program organized and easy to manage. It is a feature-rich framework and ships with a lot of functionality right out of the box, so you have a multitude of tools at your disposal.

However, Angular’s core library is quite substantial in size — it relies on heavy code and files can get bloated to accommodate all of the needed functionalities. This can have an effect on browser performance. At 130KB for an out-of-the-box, AOT-compiled application (gzipped), Angular is too heavy for simple single-page apps, especially considering that better alternatives, like Vue, are available. It also has a steep learning curve for beginners, due to the complexity of some of its features including dependency injection, services, factories, etc.

React was developed by Facebook and initially released in 2013. Technically not a framework (it is a JavaScript library), it was built for speed, simplicity, and scalability. Vue came a year later from Evan You, a former Google employee, in what he termed as the best of Angular (two-way data binding) in a lighter-weight package. React and Vue share similar features: a virtual DOM, reactive and reusable view components, and a core library with companion libraries used for routing and global state management. Their libraries are both significantly smaller than Angular, at an impressive 40KB and 30KB (gzipped), respectively.

Vue’s use of JavaScript is cleaner, easier to read, and more efficient than having to learn React’s JSX syntax. Although you can use Babel as a transpiler rather than employing JSX, Vue enables the same virtual DOM speed, similar components, forms, and filtering capabilities with a more elegant coding experience. I feel that it’s hard to justify the extra steps required to learn and use React. Vue also offers an incrementally adoptable structure — it can be embedded into existing webpages, while more advanced features, such as routing and state management, are offered through officially maintained Vue libraries and packages.

Although Vue is a newer framework and does not have the usage base of Angular or React, it is quickly gaining popularity. Support for most issues is easy to find, and directives, components, and UI toolkits that were built to work directly with Vue are popping up everywhere. Vue’s documentation is excellent — it’s lined with tutorials and explains common pitfalls that beginners can stumble on, saving developers time and trouble.

IMO, Vue feels like an intuitive and clean framework that was developed in an efficient yet thoughtful manner. The creators took the best features of popular frameworks (they even considered Ember, Knockout, Polymer, and Riot, in addition to Angular and React) and incorporated these into a light yet powerful UI tool. The Vue team even provides their own comprehensive comparison guide of Vue to other frameworks to help those new to Vue evaluate whether it would be a good fit for their application.

In short, when doing a greenfield development of a new project, it is important to weigh multiple options when choosing the right UI tool. Heavyweights like Angular and React offer compelling benefits when it comes to support issues and robust capabilities. However, Vue has an impressive amount of features and performance gains in a small, easy to implement package.

Note: this was first published on my company’s blog and reposted here with permission. Check us out at http://www.eikospartners.com/!

--

--