DEV Community

Andrew (he/him)
Andrew (he/him)

Posted on

Request for Post: Differences Between React, Angular, and Vue

This comment, left on one of my recent posts

""React is a library for building composable user interfaces. It encourages the creation of reusable UI components which present data that changes over time. It is not a complete application framework like angular, it is just a view layer. So it is not directly comparable to frameworks like angular.""

which quotes this Quora answer, suggests that React and Angular are very different things. Or that the functionality of React is a subset of the functionality of Angular. Can someone shed some light on the differences between these two, and some of the other big JavaScript frameworks / libraries, like Vue?

Top comments (9)

Collapse
 
_ronini profile image
Ronnie Villarini

I've only been working with these frameworks for about a year now, so take my opinion as you will...

As far as I know, your assumption is more-or-less right. I work with Angular at my day job, and it has EVERYTHING included. It is very opinionated, in the sense that you are expected to do everything the Angular way. It has it's own API for handling http requests, observables, it almost forces the use of TypeScript, and various other features. Basically, you never have to make a choice because Angular has made it for you, for better or for worse.

React, is the polar opposite. It is JUST a library for building UIs. Everything else you need, such as routing and state management, must be added. This gives the developer more choice and more control. Some hate this because you have to make lots of decisions on your own, others love it because of the freedom it gives you to use, or not to use - whatever you want. This also means that these packages aren't actively maintained by the core React team though so, unlike Angular, third party libraries are in charge of implementing new features from the core library.

Finally, there's Vue, my personal favorite. Vue seems to be halfway between the two. It offers tools like state management and routing from members of the core team, but also gives you the freedom to make all the other choices for yourself. I think this is just the appropriate amount of freedom for me.

Of course there are syntactic differences and other small things, but I think these are the points that separate the three in the end. They're really just all means to the same end though. (:

Collapse
 
tayambamwanza profile image
Tayamba Mwanza

The best answer in my opinion

Collapse
 
tobiassn profile image
Tobias SN

Actually Vue doesn’t have state management and routing built in. I think what you meant to say is that there are plugins available for those things, which is also the case for React.

Collapse
 
_ronini profile image
Ronnie Villarini • Edited

I actually didn't say it was baked in lol I said it's provided by members of the core team. Which is NOT the case for React.

To build on this, it means that Vue router and VueX are likely to be updated alongside Vue as opposed to react router (or your plugin of choice) which is maintained by a third party

Thread Thread
 
tobiassn profile image
Tobias SN

Guess that’s my fault for misunderstanding you then.

Collapse
 
workingwebsites profile image
Lisa Armstrong

Here's a podcast that compares and contrasts the frameworks:

"In this episode Wes and Scott talk about VueJS - what it is, how it compares to other frontend frameworks, and how to get the most out of it."

syntax.fm/show/130/the-vuejs-show-...

Collapse
 
awwsmm profile image
Andrew (he/him)

Thanks, Lisa! I'll check it out!

Collapse
 
baskarmib profile image
Baskarrao Dandlamudi

In this article there is a fundamental difference showing how the pages are rendered in Angular, Vue and React.
codemag.com/Article/1903071/A-Vue-...

Collapse
 
awwsmm profile image
Andrew (he/him)

"The problem is that when you’re trying to do something small or starting with a prototype, the build step gets in the way. That’s one place where I think Vue can really help you get building for solution faster."

I've definitely been going through this with React!