Comparison
React, Angular, Vue Compared
JavaScript libraries and frameworks have more similarities than differences. The reality is that they borrow ideas from each other to improve the JavaScript ecosystem.
React
- Components
- Library
- Just the View in MVC
- Need to include other libraries
- React Router (Routing)
- HTTP: Axios or fetch API
- ES6 (Babel compiler) or TypeScript (tsc compiler)
- Create React App
- Uses Webpack
- Redux
Angular
- Components
- Framework
- Modular
- Component Router
- HttpClient
- Forms
- Usually TypeScript (tsc compiler)
- Angular CLI
- Uses Webpack
- Reactive Extensions for Angular (ngrx)
Vue
- Community
- Started by former Google Technologist and Meteor core team member Evan You
- Components
- Framework
- Modular
- Vue Router (official Router)
- Need to include other libraries
- HTTP: Axios or fetch API
- Forms
- ES6 (Babel compiler) or TypeScript (tsc compiler)
- Vue CLI
- Vuex (State Management)
React, Angular, Vue: Key Insights
Angular continues to put “JS” into HTML. React puts “HTML” into JS. – Cory House
- Vue and Angular have templates which are often favored by developers without as much JavaScript experience
- React does not have templates because it just relies on JavaScript combined with JSX so it is often favored by developers who are fluent in JavaScript
- Angular is a more comprehensive framework while React is more of a targeted micro library. Vue can starts as a micro library and scales to a comprehensive framework.
- Because React and Vue are smaller they can be:
- Easier to understand
- Vue even more than React because of its use of templates and excellent documentation
- Easier to include in a project
- Easier to understand
- React is much more popular (but has existed longer)
- React and Vue is used more by design/digital/interactive agencies to build interactive websites as well as in the applications in an enterprise
- Angular is used more for building applications in the enterprise, particularly at larger organizations, and is getting better for website use cases