DEV Community

Cover image for React vs Angular vs Vue (briefly)
Rudolf Cicko
Rudolf Cicko

Posted on • Updated on

React vs Angular vs Vue (briefly)

The Angular’s Core contains most of the functionalities you might need in your application, while with React and Vue, you have to find external libraries, maintained by independent contributors. Luckily most of the basics one, are maintained by the same people that maintain the core. Therefore, when working with React and Vue, you have to be more careful when choosing libraries, being aware that libraries with a poor maintenance might be deprecated in future.

Coding style

To build an app with Angular you have to learn Typescript, which is a superset of JavaScript, while with Vue and React you can use pure JS. Regarding the view, with Angular and Vue you write it with HTML, where in React you have to write JSX, which is a syntax that allows coexistence between HTML and JS. Thus, Angular and Vue are ideal if you want to reuse HTML from a huge codebase.

Model

Vue and React use a Virtual DOM (VDOM), which is a node tree listing content, and elements and their attribute as objects and properties. The browser DOM is not updated directly but instead, they use the VDOM as abstraction layer. On the other hand, Angular is based on the MVC pattern and manipulates the DOM directly. Changes in your application will update it without any middleware.

State

As common, when creating our apps, the components will have their scoped state, and Angular, and Vue works in a way that the data is mutable. User inputs and code can modify the state directly. In React, the state is immutable. To update it, you have to use a specific function that will do it asynchronously.

Community

Angular and React have a powerful community behind. Angular was created by Google, and React by Facebook. Therefore, both have longer life expectancy. Whereas Vue, is an open source project, created by Evan You. Nevertheless, Vue gained a huge fame, because the creator’s idea was to take the best of the other two. From Angular, it took similar templates with good syntax, and from React, it got many features, specially the component-based approach. Vue is actively maintained, with almost 300 contributors and supported by many big companies.

Top comments (22)

Collapse
 
king11 profile image
Lakshya Singh

I will be honest stopped reading when you said vue is a library 😅. Vue has it all packed in it. The packages that you can talk about like router and store are the ones built by vue core only and no one else so its not a Library. There just different modules which is a good thing for maintaining.

Collapse
 
evgeniypp profile image
Eugene Petryankin

It's just snobbery, library or framework, either way it does not change anything. Controversies which typical for juniors rather than for professionals.

Collapse
 
cicko profile image
Rudolf Cicko

I agree, but actually it does, despite not being a bit deal. The main point there is the inversion of control.

In really vague terms, the main difference between library and framework is that in a library we have the control of what's going on, while with a framework, we don't. With a framework, we fill, typically, some objects and expect some behaviour.

Collapse
 
cicko profile image
Rudolf Cicko

Actually you are right, my bad. Vue.js is Framework, rather than library.

Collapse
 
tohagan profile image
Tony OHagan • Edited

Add Quasar.dev and you've got the full kit. Ive found their documentation was excellent and a major time saver. Components are designed for building a single app that works on all platforms, even browser extensions. I ditched Angular and Ionic for the simplicity of Vue. Latest Vue v3 Quasar v2 is just out.

Collapse
 
iamandrewluca profile image
Andrei L

Vue is a library. Vue does not have it all packed in it.
Nuxt has it all packed in it.

Collapse
 
king11 profile image
Lakshya Singh • Edited

🤔 nuxt has abstracted it all but what I meant was you don't have multiple libraries for doing task like:
For routing we have vue-router maintained by vue team unlike react router and several others for react
Similarly for state management too

Thread Thread
 
iamandrewluca profile image
Andrei L

Oh, got you! That's good. You don't have to pick a router from 10 choices, you have one maintained by all :)

Collapse
 
ceghap profile image
Ashraf Latif

need to include svelte

Collapse
 
cicko profile image
Rudolf Cicko

I can do a second part, which would include a less famous, but more promising UI frameworks

Collapse
 
mannuelf profile image
Mannuel

Nicely done

Collapse
 
daotrongducnsthdatababy profile image
Dao Trong Duc

thank u 😘

Collapse
 
motz795 profile image
MOATAZ795

I was very hesitant to study any of them and I made a final decision based on this article to study vue Thank you my friend

Collapse
 
cicko profile image
Rudolf Cicko

I am glad to hear that. Personally I like Vue very much but now I am dedicated to React.js since is the most demanded one nowadays.

Collapse
 
zeeshanahmadkhalil profile image
Zeeshan Ahmad Khalil

Yes but if you are react dev, you can also create iOS and Android apps on react-native since they both are same. And who knows it could become a complete hybrid framework in future.

Collapse
 
jjlorenzo profile image
jjlorenzo

If you are a software developer you can create software.

Collapse
 
pankaj197 profile image
Pankaj

Use Quasar with Vue. One code multiple platforms.

Collapse
 
crojach profile image
Ivan Karacic

That's why I use Ionic. I can create mobile, desktop (electron) and web apps all in one go.

Collapse
 
cjsmocjsmo profile image
Charlie J Smotherman

As an alternative Googles Flutter/Dard will also compile to IOS, android, windows/linux desktop and the web

Collapse
 
rid1 profile image
Ridwan

Wow, nicely pictured

Collapse
 
cicko profile image
Rudolf Cicko

Thanks!

Collapse
 
micode360 profile image
Micode

Very Insightful.