首页 > 代码库 > React 和 Angular 各有什么优缺点,各自又适合什么开发场景?

React 和 Angular 各有什么优缺点,各自又适合什么开发场景?

最近正在学习React,便谈一点自己的浅见。

Angular.js
首先Angular的背后是Google,所以社区基础是不用担心的,整个生态也已经是非常的完整了,从最基本的Tutorial到StackOverflow的问题数到框架本身的剖析都有非常非常多,所以从这个角度看起来Angular应该算是上手比较容易的。

不过Angular目前的问题看起来也很明显
1. 性能
同样是TODOMVC的Sample,Angular完全载入用了1.1s(WebPagetest - Visual Comparison)。不得不说,确实挺慢的。。
2. Angular 2.0
Angular的2.0几乎是一个推翻重做的框架,估计不会有1.X的upgrade方案。所以如果现在新开始的项目采用Angular的话,会是一个很尴尬的时机。同样,如此大的改动似乎也反面印证了1.X并不是那么好。这篇文章推荐去看看Why you should not use AngularJs


React.js
React很大的特点就是“轻”,再加上VDOM这个很好的idea让React非常非常快。另外React和Angular一个很大的不同就是React采用的是one-way data flow。

React的缺点嘛,大概就是现在还太新了很难说将来有没有大的API变化,目前在大的稳定的项目上采用React的。所以现在很少有批评React的声音也许不是他真的就没有坑,而是那些坑还没有被踩出来而已。

还有就是React本身只是一个V而已,所以如果是大型项目想要一套完整的框架的话,也许还需要引入Flux和routing相关的东西。React的routing我没有研究过,但是Flux的话已经有出现一些批评的声音了。



总结
Angular是真正的大而全的framework,他有自己一套思路,基本你follow这个思路往里面填代码就OK。
React是一个简短有力的library,他只负责解决你某个单一的“痛点”。

React 和 Angular 各有什么优缺点,各自又适合什么开发场景?