BFE.devAI解答 - React 小测验
9. React re-render 6 - Context
这段代码的输出顺序是什么?
输出顺序是:
- "App"
- "A"
- "B"
- "C"
- "B"
- "D"
说明:
- 首先渲染
<App/>
,调用App
组件,输出 "App"。 - 在
App
组件内部,渲染<A>
组件。调用A
组件,输出 "A"。在A
组件内部,调用useEffect
,并根据依赖数组为[]
更新state
状态。由于此时state
为0
,因此更新后state
变为了1
。 <B>
组件被渲染,由于使用了useContext
,因此可以获取到MyContext
在A
组件中提供的state
值(即1
)。因此输出 "B"。<C>
组件被渲染,输出 "C"。<B>
组件被卸载,因此输出 "B"。<D>
组件被渲染,输出 "D"。