繁体   English   中英

记忆组件的子组件是否也被记忆?

[英]Are child components of a memoized component memoized too?

从 useMemo 返回或包装在 React.memo() 中的子组件是否也被记忆? (抱歉,这可能是一个愚蠢的问题)

例如:

React.memo(<Parent><Child/></Parent>);

这里的 Parent 被记住了,Child 是不是太记住了?

从 React 也没有将React.memo应用到孩子的意义上,孩子没有被记忆。

但是子组件在以下意义上被记忆:假设组件 A 被包裹在React.memo中,而它的子组件 B 没有。 如果 A 因为记忆而没有重新渲染,那么 B 也不会重新渲染。

同样来自文档:

React.memo 仅检查 prop 更改。 如果包装在 React.memo 中的 function 组件在其实现中具有 useState 或 useContext Hook,它仍会在 state 或上下文更改时重新呈现。

因此,如果组件 state 被修改,那么它将被重新渲染,尽管它或父级已被记忆。

此外,如果 A 被重新渲染,因为它的state中的某些内容发生了变化,那么它的子 B 也将重新渲染(假设 B 没有被记忆)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM