xmc*_*mcp 9 javascript reactjs react-hooks
React 刚刚startTransition在 v18 中发布了 API。虽然这看起来像是一个可以带来更多响应能力的“魔咒”,但该文档对其幕后行为的描述相当模糊。文档中与其行为相关的唯一一句话是“转换中的更新会产生更紧急的更新,例如点击”。
作为一名 React 程序员,我担心它是否会导致我的组件出现故障。例如:
state. 当转换将其转变为 时slow_update(state),会发生另一个事件将状态转变为fast_update(state)。在这个过程中我们将同时得到slow_update(state)和fast_update(state)计算。当状态更新按顺序完成时,这在旧的 React 中永远不会发生。useEffect状态更新触发了一些钩子,如果转换被中断,回调会执行两次吗?由于状态在转换期间发生分支,回调是否会收到一些不一致的数据?我也很好奇它会让我的应用程序变得更加灵敏。例如:
startTransition适用于渲染阶段,还是仅优化协调?它仅适用于回调本身,还是也适用于更新状态的后续渲染、useMemos 和s?useEffect看来 CPU 密集型逻辑无论如何都会阻塞主线程,因此 React 无法中断它。因此,如果我的组件在回调中过滤长列表startTransition,它是否得到了优化?requestAnimationFrame每 16ms 更新一次状态,而慢速转换需要更长的时间,那么慢速转换是否会一次又一次被中断?我已阅读文档、发行说明、reactwg 讨论和官方示例,但它们没有回答上述问题。由于与并发相关的错误很难修复或重现,因此如果有一些拇指规则(例如hooks 规则)可以保持转换代码始终正确,那就太好了。
一般来说,哪些代码将从中受益startTransition,以及需要什么来避免故障?
| 归档时间: |
|
| 查看次数: |
808 次 |
| 最近记录: |