Ben*_*son 2 javascript memoization reactjs react-hooks react-usememo
从 useMemo 返回或包装在 React.memo() 中的子组件是否也被记忆?(抱歉,这可能是一个愚蠢的问题)
例如:
React.memo(<Parent><Child/></Parent>);
Run Code Online (Sandbox Code Playgroud)
这里Parent被记忆了,Child是否也被记忆了?
孩子没有被记忆,因为 React 也不适用React.memo于孩子。
但是子组件是在以下意义上被记忆的:假设组件 A 被包装React.memo,而它的子组件 B 没有被包装。如果 A 由于记忆而没有重新渲染,那么 B 也不会重新渲染。
还来自文档:
React.memo 仅检查 prop 更改。如果 React.memo 中包装的函数组件在其实现中具有 useState 或 useContext Hook,则当状态或上下文更改时它仍然会重新渲染。
因此,如果组件状态被修改,那么它将被重新渲染,无论它或父级是否被记忆。
此外,如果 A 由于其状态发生变化而被重新渲染,那么它的子 B 也将重新渲染(假设 B 未被记忆)。
| 归档时间: |
|
| 查看次数: |
1270 次 |
| 最近记录: |