从 useMemo 返回或包装在 React.memo() 中的子组件是否也被记忆?(抱歉,这可能是一个愚蠢的问题)
例如:
React.memo(<Parent><Child/></Parent>);
这里的 Parent 被记住了,Child 是不是太记住了?
从 useMemo 返回或包装在 React.memo() 中的子组件是否也被记忆?(抱歉,这可能是一个愚蠢的问题)
例如:
React.memo(<Parent><Child/></Parent>);
这里的 Parent 被记住了,Child 是不是太记住了?
从 React 也不适用React.memo
于孩子的意义上说,孩子没有被记忆。
但是子组件在以下意义上被记忆:假设组件 A 被包裹,React.memo
而它的子组件 B 没有。如果 A 因为记忆而没有重新渲染,那么 B 也不会重新渲染。
同样来自文档:
React.memo 仅检查 prop 更改。如果你封装在 React.memo 中的函数组件在其实现中有一个 useState 或 useContext Hook,它仍然会在状态或上下文发生变化时重新渲染。
因此,如果组件状态被修改,那么它将被重新渲染,尽管它或父级已被记忆。
此外,如果 A 被重新渲染是因为它的状态发生了变化,那么它的子 B 也将重新渲染(假设 B 没有被记忆)。