Facebook将推出React Fire计划
极客时间编辑部
讲述:杜力大小:1.33M时长:02:54
近日,React 开发者丹·阿布拉莫夫·加仑(Dan Abramov gaearon)在 GitHub 上的 React issue 上,宣布了一个名为 React Fire 的规划,他表示,这个项目旨在使 React DOM 更现代化,目标是让 React 可以更好地与 DOM 的工作方式保持一致,React 团队会重新审视之前做出的一些有争议的决策,并让 React 变得更小更快。
他表示,今年以来,React 团队主要关注的是 React 的基础改进,目前,这项工作已经接近尾声。接下来,他们开始考虑 React DOM 的下一个主要版本应该是什么样子的。
据了解,React 团队可能会在当前的计划中添加或删除一些内容,但总体的考虑包括以下五个方面:
1. 停止在 value 属性上反映输入值。
这个特性最初是在 React 15.2.0 中添加的。这是一个非常普遍的需求,因为人们对 DOM 模型的理解,就是在 DOM 检查器中看到的 value 应该与值 JSX 的 value 属性相匹配。但是,其实 DOM 不是这样的,在输入字段时,浏览器并不会更新 value 属性,所以 React 也不应该这样做。
事实证明,这个变化虽然可能对依赖 CSS 选择器的一些代码有点用处,但却导致了一系列错误,其中一些仍然没有得到修复。从这一点上来说,显然不值得继续与浏览器作斗争,所以应该回退。
2. 将事件附加到 React root,而不是 document。
在将 React 应用程序嵌入到更大的系统时,将事件处理器附加到 document 会成为一个问题,大型网站通常会出现非常复杂的边缘案例。他们还希望能够尽早将事件附加到每个 root,这样就可以在更新期间减少运行时检查。
3. 从 onChange 切换到 onInput,并且不需要为不受控组件进行 polyfill。
他们希望能够因此消除一些复杂性,而将这两个变更结合在一起,可以借此机会让 onInput 和 onChange 与 DOM 事件,在不受控组件上的行为保持一致。
4. 大幅简化事件系统。
当前的事件系统自从 2013 年初始实现以来,几乎没有发生过任何变化。它提供的很多 polyfill 对于现代浏览器来说是不必要的,并且其中一些产生的问题比它们解决的问题还要多。
5. 将 className 改为 class。
在 React 16 中, 允许将 class 传给 DOM 节点。但是为了避免语法限制所带来的好处低于它所造成的混乱,他们不会单独做出这个变更,不能在没有给出警告的前提下让二者同时存在,因为组件生态系统很难处理好它们。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论