概论
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;})