概论

angular

angular是一个大而全的MVC框架,它提供了咱们所须要的各种性能,如模块治理,双向绑定等等,它涵盖了开发中的各个层面,并且层与层之前都通过了精心调试

react

all in js。很多货色都得本人去手动解决。要学jsx,还有其它一些如redux。也能麻烦。

vue

提供的vue模板,让习惯了html,js,css拆散,使代码看起来更不便。封装的一些货色对使用者比拟敌对,是三者中速度最快,体积最小的一个框架。
Vue声称能够更快地计算出Virtual DOM的差别,这是因为它在渲染过程中,会跟踪每一个组件的依赖关系,不须要从新渲染整个组件树。

而对于React而言,每当利用的状态被扭转时,全副子组件都会从新渲染。当然,这能够通过shouldComponentUpdate这个生命周期办法来进行管制,但Vue将此视为默认的优化。

优缺点

angular

是一个大而全的框架,实用于大中型我的项目。

学习老本高

react

是一个小而精的库

jsx,很多货色都得本人去手动解决。只重视view层的渲染。而把其它的货色都是有社区实现。也造成了,比方react-router4就跟之前不一样。版本变更不统一的坑爹行为。然而vue和angular则不会都是由官网保护,和框架一起公布变更。

vue

封装的一些货色对使用者比拟敌对,是三者中速度最快,体积最小的一个框架

选型

angular

如果你须要在一个大型的框架内获取技术资源,框架内的技术通常很容易移植。或者你须要在框架中训练开发人员,并且还有肯定的信念,他们会在短期内取得肯定的开发能力。
如果你的web利用可能很好的转化为规范的模型——视图模式,那么你也能够疏忽其它间接应用。

react

如果你很少须要手把手领导,并且正在寻找更好的库而不是全面的框架,那么react可能是正确的,这一过程,你不仅要对你的团队和组织的能力放弃虔诚,还要在你的初始开发过程中,以及在整个应用程序的长期保护过程中放弃虔诚。

vue

如果你有一个传统的web应用程序,并须要一个强健持重的应用程序层,那么vue可能是一个很好的抉择,它有清晰的模式,即便没有教训的团队也能正确的应用它。

v-model的实现

react

class Input extends Component{    valueChange=(e)=>{        this.setState({value:e.target.value})    }    render(){        <div>            <input type="text" value={this.state.value} onChange={this.valueChange}/>        </div>    }}

angular

<input [ngModel]='todo.text' (ngModelChange)='todo.text=$event'/>=<input [(ngModel)]='todo.text'/>@Directive({    selector:'[ngModel]',    host:{        '[value]':'ngModl',        '(input)':'ngModelChanged.next($event.target.value)'    }})class NgModelDirective{    @Input() ngModel:any;    @Output() ngModelChanged:EventEmitter=new EventEmitter()}

vue

<input type='text' value='' id='J_input'/><p id='J_p'></p>let obj={};Object.defineProperty(obj,'say',{    set:function(value){        document.getElementById('J_input').value=value;        document.getElementById('J_p').innerHTML=value;    }})document.addEventListener('keyup',function(e){    obj.say=e.target.value;})