2022 年 9 月 28 日,React 团队核心成员 Dan Abramov 封闭了在本年 5 月 4 日的 useEvent 提案,完好提案概况见:useEvent 完好提案。


2022 年 9 月 29 日更新,本文原标题为《React 新提案 useEvent 已死》。Dan 也注意到了社区中很多谈论 useEvent “已死”的声响,特地做了澄清,虽然本提案已封闭,可是并不意味着 React 团队全盘否定了 useEvent 的提案,后续将会鄙人一个 RFC 上运用相同 API,略微不同的引荐用法和语义,以及一个或许的新姓名。概况见下图:

React 新提案 useEvent 已死?不,它将涅盘重生。


以下是原文

useEvent 提案 描绘:

React 新提案 useEvent 已死?不,它将涅盘重生。

2022-09-28 Dan 关于提案封闭的阐明:

React 新提案 useEvent 已死?不,它将涅盘重生。

原文翻译如下:

咱们好,感谢咱们的评论!咱们在 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》】。