Not sure what you mean by "so called" - those are the names of the frameworks, haha.
Modern programming usually consists of the MVC. Modal, View, Controller.
AngularJS, invented by Google is the closest thing to an MVC of these. It's like Twitter Bootstrap. It gives you a bunch of stuff, wether you need it or not, right off the bat to get a given job done. But it does the MVC in whole.
React, invented by Facebook is just the View. You need to bring your own Modal and Controller. Some people like this because it gives you options. Some people (like me) don't like this because there becomes a hundred + 1 ways to get the same thing done. Google React tutorial - no 2 tutorials are remotely the same.
I used VueJS only a short bit - I believe it falls somewhere between AJS and React but someone else would be better to explain it then me.
These are the ones people talk about the most often because their the most popular or controversial - there's been many discussions on what's better - AJS or React with Vue getting the random mention. There are dozens more just like any of them, all with their own nuances and such.
From the business perspective, basically nothing at all. They all fill the same space in the tech stack, which is to provide a javascript-based UI layer for your application.
Philosophically, I've found frontenders and FP fans tend to gravitate to React and backenders and OOP fans tend to gravitate to Angular. That doesn't mean your team will agree, just a very loose/broad trend.
In terms of direct technical comparisons - I think the other comments cover those.
I just think it's worth remembering to ask yourself - What are you trying to achieve now that you can't do with your current tech? What do you have in production now? How will your team learn a new thing? How will you support the old? etc.
Direct technical comparisons hide a lot of important considerations.
Director of User Experience Development
j
stuff ;)
Angular 1 had Controller with Angular 2 they switched to component based systems.
If you're a java-dev Angular 2 will probably easier to grasp it has a lot of abstractions like factories and other patterns.
It's per default using Typescript for "type safety", some of the concepts are pretty neat it uses worker to render templates and returned the rendered buffer.
In Angular 1 they had the digest loops this is okay for small pages but the bigger a page get the less efficient it will become. Angular 1 per default always renders everything on change.
In Angular 1 there is a DSL that you use for your templates an example out of one of my projects
<ul ng-if="!extended" class="col-group"> <li class="label">amount:</li> <li>{{session.timeDiff}} Minutes</li> </ul>Angular 2 already uses a virtual DOM - abstraction. I am not a specialist on Angular 2 but it's a complete frontend framework as Mario Giambanco mentioned. So it contains routing, and other tools ready to use.
It's more built on OOP designs.
React is a view library and aims to be more functional it commonly uses JSX / TSX (i will reuse the example from above) but you could write the whole thing as a nested objects as well. JSX will get compiled to a normal object and is only there because it resembles HTML and is easier to grasp for most people because we're used to the meta language
render() { const {extended, timeDiff} = this.state; return ( <ul className={"col-group " + !extended ? 'hide' : ''}> <li className="label">amount:</li> <li>{session.timeDiff} Minutes</li> </ul> ); }you have two basic approaches:
react uses "this.state" and "this.props"
stateful:
using
this.statethe state is contained in an instance of a component and can only be changed from the inside.stateless:
using
this.propsprops are passed down from the parent component this is the idea that you only want to have 1 source of truth. and every thing inside your component tree will use itthe stateless idea was introduced with flux but this leads to far....
those two concepts are widely used. The main idea of react was about the virtual dom the normal rendering in a browser is per default the most time costly thing. it's blocking and every manipulation will trigger a rerender.
sai wrote a nice story about this hashnode.com/post/the-one-thing-that-no-one-prope…
So Vue, is a combination of angular 1 and react. it uses a DSL to simplify the access but it's a more progressive and less religious approach to my knowledge. Tbh I never wrote a project with it so my knowledge is very superficial.
Vue is used in asia a lot and the php framework laravell choose it to be used for them.
maybe someone else can explain it better so I will stop here.