据我所知, useEffect() 钩子取代了 componentDidUpdate()、componentDidMount()、componentWillUnmount(),因此它被调用来代替这 3 个方法中的每一个。
所以在我的代码中我有:(文档中有一个每秒递增的计时器)
useEffect(()=>{
const intervalId = setInterval(()=>{
setTime((prevTime) => prevTime + 1)
},1000)
// return ()=>{
// clearInterval(intervalId)
// }
},[])
据我了解,将空数组作为第二个参数会使 componentDidUpdate() 不会调用 useEffect ,因此其他两个方法都会调用它。
我想要我不明白的是为什么在 componentWillUnmount() 时不调用 useEffect - 我认为这是使用新计时器更新组件之前的时刻。
最后为什么即使我取消注释/注释clearInterval()部分它也会以相同的方式工作?
慕慕森
相关分类