React 新提案 useEvent 已死?不,它将涅盘重生。
2022 年 9 月 28 日,React 团队核心成员 Dan Abramov 关闭了在今年 5 月 4 日的 useEvent RFC 提案,完整提案详情见:useEvent 提案。
2022 年 9 月 29 日更新,本文原标题为《React 新提案 useEvent 已死》。Dan 也注意到了社区中很多谈论 useEvent “已死”的声音,特地做了澄清,虽然本提案已关闭,但是并不意味着 React 团队全盘否定了 useEvent 的提案,后续将会在下一个 RFC 上使用相同 API,略微不同的推荐用法和语义,以及一个可能的新名字。详情见下图:
以下是原文
useEvent 提案 描述:
2022-09-28 Dan 关于提案关闭的说明:
原文翻译如下:
大家好,感谢大家的讨论!我们在 facebook/react#25229 中实现了一个 useEvent 原型,你可以在 @experimental
版本中使用它。但是我们也意识到,我们没有信心将两种不同的动机(渲染优化和“修正” Effects)耦合在一个提案下。
特别是,我们担心这个建议会产生强烈的动机,让更多开发者将当前使用 useCallback
包裹的函数都替换成 useEvent
。然而,在函数本身很重要的情况下,使用 useEvent
会导致不正确的语义。因为 useEvent
会”擦除“流入其值的响应性,我们认为需要对在何处合理使用 useEvent
进行额外的限制。在大多数情况下,只有最终的消费方(例如来自事件函数调用的 Effect)才能“确定” 它是否“关心”函数值的响应性。因此,广泛使用 useEvent
似乎为时过早。
对于渲染优化,我们研究开发了一个自动记忆编译器。目前尚不清楚此 RFC 中描述的优化在使用该编译器时是否仍然有效,因此我们将重新审视这个问题,并作为正在进行的研究的一部分。我们可能考虑的这种模式也有其他可选优化方式。
现在,我们想搁置当前的 RFC,计划发布一个不同的、范围更小的 RFC 来取代这个 RFC。由于新的 RFC 的作用域不同,我们也许会给 useEvent
一个不同的名字。
注: RFC(Request For Comments),征求修正意见书。React 团队的 RFC 流程:无论是 React 官方团队还是其他人想要对 React 做出大量变化,或者添加新特性时,都需要撰写一个提案,提案里面需要包含动机的详情和该提案如何工作的详细设计。
结语:
useEvent 已死,useXXX 将重生。更多关于 useEvent 提案,可以参考黄子毅老师的 【精读 《React useEvent RFC》】。
版权声明: 本文为 InfoQ 作者【清秋】的原创文章。
原文链接:【http://xie.infoq.cn/article/cbc3c89d85bcfdb901f18ad0e】。文章转载请联系作者。
评论