我刚刚了解到React.memo()并想知道,我们什么时候不想要这种行为?我们不是总是希望组件仅在其 props 发生更改时才重新渲染吗?
这是因为记忆本身不是免费的,你不应该在任何地方使用它。因为:
useMemo,忘记向 deps 数组中添加一些东西——你的应用程序现在有一个错误。由于这是开发人员管理的事情——会发生人为错误。当毫无戒心的开发人员扩展了记忆组件的 API 然后不更新比较函数时,这种情况通常会经常发生。完全相反的情况也可能发生在记忆化函数以这样的方式编写的情况下,即它将接受并比较新的道具而无需更改,但该比较(就像如果它比较一个对象,每次都会是一个差异引用)实际上结束了无论如何,每次都会触发重新渲染,使整个事情变得毫无意义(错误的安全感)。简而言之:记忆是一种维护负担,您应该仅在个人和特定情况下通过成本效益分析来承担这一任务。
| 归档时间: |
|
| 查看次数: |
1036 次 |
| 最近记录: |