为什么React的文件大小因为它的API很小?

Eld*_*rov 85 reactjs

这是数字

  • min + gzip 26k
  • gzip 90k
  • 原来450 + k

而React在其文档中没有很多功能.它为什么这么大?

我觉得这是轻量级DOM的实现.但我想确定.

Sop*_*ert 182

React确实做了很多!React最大的非显而易见的部分可能是事件系统 - React不仅实现了自己的事件调度和冒泡,它还可以规范浏览器中的常见事件,这样您就不必担心它了.例如,SelectEventPlugin是一个内置事件"插件",它提供了一个onSelect在所有浏览器中表现相同的事件.

虚拟DOM实现确实需要的代码像样的数目为好; 在性能优化上花费了很多精力,这就是为什么未公开的版本包含ReactPerf,它是一种测量渲染性能的工具.在更新DOM时,React也为你做了一些方便的事情,比如维护任何输入选择并保持当前滚动位置不变.

React也有其他一些技巧.最酷的一个是它完全支持将组件呈现为HTML字符串,即使您没有浏览器环境,因此您可以发送一个甚至在加载JS之前工作的页面.


你在比较React对比什么?react-15.0.2.min.js43k (gzipped)的,但jQuery是33K,而ember-2.6.0.prod.js363k (also gzipped).显然这些框架并没有完全相同的东西,但它们确实有很多重叠,所以我认为比较是合理的.

如果您担心下载大小,我不会过分担心JS代码会对此产生影响.这是我现在在Stack Overflow页面右侧看到的广告:

它的下载大小是95k - 我不会三思而后行在页面中包含这样的图像,因为(即使我担心性能)通常还有很多与性能相关的东西需要修复才能获得更多利润.


简而言之,我认为React并不是那么大,它的大小有多大来自它帮助你的许多小事.你引用React的小API作为React的代码应该很小的原因,但更好的问题可能是,"React的API如何能够如此简单,因为它为你做的所有事情都是如此?"

......但这是一个完全独立的问题.:)希望我回答你的问题 - 如果我没有,我很乐意扩大.

  • 注意,我们在Facebook的移动网站上使用React,其中大小绝对非常重要:) (29认同)
  • @lightblade嗯...不.内存使用量取决于代码的分配数量.React非常努力地避免分配. (4认同)
  • 你完全回答了我的问题.反应太棒了.我正在考虑将它用于移动设备,因此尺寸很重要.它只是没有太多关于它的作用的信息.而且我认为我可以使用更多技巧:)我觉得我可以摆脱jquery的东西.paulmillr/exoskeleton正好赶上:) (3认同)
  • 我正在挖掘完全不同的应用程序构建概念.检查https://vimeo.com/78151404和https://github.com/component/component - 使用那些你根本不需要jQuery的东西,compy和jsxtransformations一起玩得很好.而React做得最难 - 其他一切(模型,路由,服务器通信)都可以由微组件覆盖. (2认同)
  • @ 1nfiniti好的,更新了一些新的数字,因为已经有两年半了. (2认同)