使用ReactJS的优缺点

60

我刚开始使用React进行开发。

有人能列举一下使用ReactJS的优缺点吗?在大型项目中使用这个库是否存在性能问题。

1个回答

54

使用React的优势:

  • 易于了解如何渲染组件,只需查看渲染函数即可。
  • JSX使得阅读组件代码变得容易。也很容易看到布局或者组件之间的连接/组合方式。
  • 可以在服务器端渲染React。
  • 易于测试,并且您还可以集成一些工具如jest。
  • 它确保可读性并使维护更容易。
  • 你可以使用React与任何框架(Backbone.js, Angular.js)一起使用,因为它仅是一个表示层。

React不太好的地方:

  • 它只是一个视图层,你仍需要为Ajax请求、事件等插入代码。有些人会对此感到惊讶。
  • 库本身非常大。
  • 学习曲线可能很陡峭。

如果react-native真正如其所述,那么React将变得更加庞大。

就性能而言,它非常好,因为它依赖虚拟DOM来了解UI中真正发生了什么变化,并只会重新渲染实际上已经改变的内容。它在处理非常大、稍有变化的子列表(2000<li>测试)时可能会出现问题,但可以简单地进行优化。

如果你不确定,只需考虑使用React的大项目:Instagram、Hipchat、Facebook聊天等等。

一些资源:

这可能是我最喜欢的博客文章之一:为什么React很棒?


2
我想对你的回答添加一些注释,因为我认为指出这一点是明智的。首先,React并没有预装Jest,Jest可以用来测试React组件,但不是必需的。其次,React从未旨在成为除视图层之外的任何东西,这不应该成为抵制它的理由。React提倡可组合性,而不是将自己锁定在框架中的能力。 - Henrik Andersson
1
你说得对,我在回答问题时有些匆忙。我编辑了答案,加入了你的观点。尽管如此,我仍认为“这是视图层”应该被列为缺点,因为很多人会对此感到惊讶。 - Jeremy D
我添加了一条关于性能问题经常出现的注释。当子元素列表很大且几乎没有变化时,进行差异比较可能会导致大量浪费的 CPU 循环。人们似乎期望这个过程非常快,因为“React 很快”。 - Brigand
谢谢!我不想深入细节,但你的观点是正确的。 - Jeremy D

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