AngularJS与ReactJS比较

45

我正在决定在我的新网络应用中使用哪个JavaScript框架。 我本来想使用Angular,但最近听说了React。 问题是,我没有找到一个真正好的比较两者之间的文章。 大多数进行比较的文章都是“赞成React”的,而且并不能很好地进行比较,只是展示为什么React更好。 例如:

https://www.codementor.io/reactjs/tutorial/react-vs-angularjs http://www.quora.com/Pete-Hunt/Posts/Facebooks-React-vs-AngularJS-A-Closer-Look

有没有真实的经验或比较说明两者的优缺点? 感谢您的参与。

更新 - 可能一个小例子会有所帮助,如何在这两个框架中做同样的事情并比较它们的优缺点。

例子:我有一个公司列表,每行是一家公司,每列是关于该公司的一些信息(名称、地址、员工数量等)。有很多条目,我需要做一些分页和排序(服务器端)。


1个回答

49

我对React有一定的经验,但对Angular基本上没有。所以我关于Angular要说的都是我从其他人那里读到或听到的。

React

优点

  1. 易学
  2. 隔离化组件更易于维护
  3. React中“总是重新渲染”的方式在处理复杂情况下更易理解
  4. Flux是MVC模式的一个非常好的替代品。单向数据流有助于可维护性,保持数据和DOM元素的一致性。结合Immutable.JS数据结构,这是锦上添花的最佳选择 :)

缺点

  1. 与DOM操作库(例如:jQuery)不兼容
  2. 它确实改变了你做事情的方式,特别是如果你使用Flux,这是好的,但需要一些时间适应。
  3. 我发现有些情况下,每次重新渲染会拖慢应用程序,尤其是当组件在render方法中处理大量数据集时。在这些情况下优化性能可能有点棘手。

Angular

优点

  1. 完善的文档
  2. 社区成员乐于助人(在此SO上易于找到好的答案)。
  3. 双向数据绑定使某些事情非常容易实现

缺点

  1. 性能问题:为实现双向数据绑定,必须检查您的数据模型是否有更改。它还必须解析您的HTML才能使其魔法生效。这会减慢速度,并且如果应用程序在移动设备上运行,则会更快地耗尽电池寿命
  2. 逻辑分散在HTML和JS中:代码更难以理解、维护和调试。
  3. v2即将修复一些问题,但使所有v1代码作废

9
好的回答,我已经使用React和Angular大约一年了,我想补充的是,永远不会选择Angular而不是React,但是如果你需要几个没有React经验的开发人员立即开始工作,React学习起来太耗时间,实用性不高。此外,从我听到的消息来看,Ember是Angular的一个更好的版本。在空闲时间学习React,然后在下一个项目或公司的一些内部工具中使用它。 - Brigand
1
是的,自学总是更好,然后从一些小的项目开始。 - Breno Ferreira
5
把HTML和JS分离会使代码更难理解、维护和调试吗?这是胡说八道。实际上,这种分离是一种好的做法,“不要混淆HTML和JS”,并且它使项目非常清晰易懂。模型-视图-控制器(MVC)中,HTML Angular模板是视图,JS Angular组件是控制器,Angular还有模型部分(模型+服务)。 - Kamil Kiełczewski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接