gpt4 book ai didi

javascript - 已内存组件的子组件是否也已内存?

转载 作者:行者123 更新时间:2023-12-02 02:21:56 24 4
gpt4 key购买 nike

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

例如:

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

这里父项已被内存,子项是否也被内存了?

最佳答案

子级不会被内存,因为 React 也不会将 React.memo 应用于子级。

但是 child 是通过以下方式被内存的:假设组件 A 被包装在 React.memo 中,而它的子组件 B 则没有。如果 A 由于内存而没有重新渲染,那么 B 也不会重新渲染。

同样来自文档:

React.memo only checks for prop changes. If your function componentwrapped in React.memo has a useState or useContext Hook in itsimplementation, it will still rerender when state or context change.

因此,如果组件状态被修改,那么它将被重新渲染,无论它或父级是否被内存。

此外,如果 A 由于其状态发生变化而被重新渲染,那么它的子 B 也将重新渲染(假设 B 未被内存)。

关于javascript - 已内存组件的子组件是否也已内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66288252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com