共计 1691 个字符,预计需要花费 5 分钟才能阅读完成。
概论
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;})