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.state the state is contained in an instance of a component and can only be changed from the inside.
stateless:
using this.props props 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 it
the 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.