以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!
BFE.devAI解答 - React 小测验
6. React re-render 5 - context
这段代码会在页面渲染出一个空白的页面,并在控制台输出以下内容:
A
B
C
App
解析:
- 当根组件
<App/>
被渲染时,useEffect
钩子函数会被触发,将state
设置为 1,并触发重渲染。 - 组件
<A/>
作为App
的子组件被渲染,输出A
。 - 组件
<B/>
作为<A/>
的子组件被渲染,通过使用useContext
获取到MyContext
提供的值,并输出B
。 - 组件
<C/>
作为App
的子组件被渲染,输出C
。 - 最后
App
组件被渲染,输出App
。
由于 A
组件由 memo
包裹,所以只有 state
发生变化时,A
组件才会被重新渲染。而 B
和 C
组件则没有做任何优化,每次 App
重新渲染时都会重新执行。