【发布时间】:2020-02-09 15:18:40
【问题描述】:
例如,如果我有组件 A 和 B,而组件 B 是组件 A 的子级:
<A>
<B />
</A>
在 A 里面我们有:
useEffect(() => {
console.log('Parent A useEffect')
})
在 B 中我们有:
useEffect(() => {
console.log('Child B useEffect')
})
我做了一些测试,我看到了两件事:
- 第一次加载时(例如 F5 之后),日志结果为:
父A useEffect
儿童 B 使用效果
- 如果我们去另一个组件,然后又回到组件 B(不是通过重新加载,而是通过使用 react-router,例如),日志结果是:
儿童 B 使用效果
父A useEffect
在两种情况下,结果是相反的。这让我有点困惑。
我在 Google 上搜索了 componentDidMount,发现了这个:https://github.com/facebook/react/blob/v15.0.1/docs/docs/ref-03-component-specs.md#mounting-componentdidmount
之前调用子组件的
componentDidMount()方法 父组件。
但是我找不到关于useEffect的相应文档
那么useEffect在父/子组件中的正确执行顺序是什么?
【问题讨论】:
标签: reactjs use-effect