以下是数字
React在其文档中没有很多功能。它为什么这么大?
我感觉这是轻量级DOM的实现。但我想确定。
答案 0 :(得分:182)
React做了很多! React最大的非显而易见的部分可能是事件系统 - React不仅实现了自己的事件调度和冒泡,它还可以规范浏览器中的常见事件,这样您就不必担心它了。例如,SelectEventPlugin是一个内置事件“插件”,它提供onSelect
事件,在所有浏览器中的行为方式相同。
虚拟DOM 实现确实需要大量的代码;在性能优化方面花费了很多精力,这就是为什么未经分类的版本包含 ReactPerf ,这是一种用于测量渲染性能的工具。在更新DOM时,React也为你做了一些方便的事情,比如保持任何输入选择并保持当前滚动位置不变。
React也有其他一些技巧。最酷的一个是它完全支持将组件呈现为HTML字符串,即使您没有浏览器环境,因此您可以在加载JS之前发送一个可以正常工作的页面。
你在比较React对比什么? react-15.0.2.min.js
为43k (gzipped)
,但jQuery为33k,而ember-2.6.0.prod.js
为363k (also gzipped)
。显然这些框架并没有完全相同的东西,但它们确实有很多重叠,所以我认为比较是合理的。
如果您担心下载大小,我不会太担心JS代码会对此做出贡献。这是我现在在Stack Overflow页面右侧看到的广告:
它的下载大小是95k - 我不会三思而后行在页面中包含这样的图像因为(即使我担心性能)通常还有很多其他与性能相关的东西需要修复有利可图。
简而言之,我认为React不是那么大,它的大小确实来自它帮助你的许多小事。你引用React的小API作为React的代码应该很小的原因,但更好的问题可能是,“React的API如何能够如此简单,因为它为你做的所有事情都是如此?”
......但这是一个完全独立的问题。 :)希望我回答你的问题 - 如果我没有,我很乐意扩大。
答案 1 :(得分:-2)
有几个想法..我对它的大小有一些相同的担忧,但在使用它之后,没有玩笑,如果它的大小为5MB,我会使用它。它就是那么好。也就是说,我确实决定尽可能减少对其他库的依赖。我正在使用jquery做两件事...... ajax和自动ajax响应和请求处理(beforeSend等),它们会在登录后处理响应时处理令牌,然后确保每个ajax请求都将它添加到Authorization标头中发送。我用一个超级简单的原生javascript代替了它。效果很好。另外,我试图使用_underscore。我用lodash替换它,它更小更快,虽然目前我没有使用它,所以可以完全删除它。
这篇文章中有很多关于google的文章,我发现有一些文章可以使用原生JS而不是jquery。
http://www.sitepoint.com/jquery-vs-raw-javascript-1-dom-forms/