React Vs Angular
1.从框架来看
Angular是MVC框架, 提供 HTTP服务,router, forms 等开箱即用的服务,所以灵活性没有React好
React仅是一个view 在mvc 框架中,所以Model 和Controller层可以由用户自己决定用什么,灵活性比angular好,常用的三方库有:react-router路由跳转,redux数据状态管理,enzyme单元测试。
2.从体积大小来看
Angular包含的东西很多,所以体积要比React要大,自然加载速度要比React要慢。
3.从DOM来看
React采用了Virtual DOM, 即模拟了真实的HTML dom 结构和属性,而Angular采用了正常的DOM,所以在效率上React比Angular更好。
4.从实现模板上来看
React使用了JSX语法来实现展示的模板, 而jsx可以在JavaScript中写入并兼容js的语法,学习成本较低。
而Angular使用了HTML和自由的directives(如ng-if,ng-for)增加了学习的成本。
5.组件化
React和angular 都具有组件化
6.数据绑定方式
React是单向绑定,即:如果改变了state里的数据,则改变了UI上的数据,但是如果改变了UI上的数据,则不会改变State里的数据,这时需要用户自己去更改state里的数据。
Angular是双向绑定,即:如果改变UI上的数据,则直接改变了state里的数据,如果改变了State里的数据,则UI上的数据页会改变
7.类型检查
React使用JavaScript,动态类型语言,而Angular采用Typescript,静态类型类型检测,需事先声明类型。当然在React中也可以使用Typescript。
8.移动端提供的解决方案
Angular提供了Ionic,Ionic仅是一个钳在webview中的一个web应用。所以速度上还是比较慢。
React提供了React Native,React Native真正提供了一个原生的UI,所以速度上要比Ionic快很多
9.学习曲线
React基本的需要学习JSX,state, props,生命周期,组件,同时还需要React-router, redux,这些基本就差不多了
Angular基本的需要学习指令,模块,装饰器,组件,服务,依赖注入,管道和模板,同时需要学习Rxjs,typescript等。
学习曲线Angular明显比React要高对于新手来说。
10.React fiber
在React V16以后,React增加了FIber的概念,速度较之前更快。使用上是不会有任何感觉的,fiber的主要的目的就是将任务划分等级,拆分的更细,同时任务可以暂停和恢复,当来了更高级的任务(如用户鼠标的点击),则暂停当前的任务,去完成更高级的任务。这样反应速度上会让用户感觉更快!
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!