據我所知, useEffect() 鉤子取代了 componentDidUpdate()、componentDidMount()、componentWillUnmount(),因此它被調用來代替這 3 個方法中的每一個。所以在我的代碼中我有:(文檔中有一個每秒遞增的計時器)useEffect(()=>{ const intervalId = setInterval(()=>{ setTime((prevTime) => prevTime + 1) },1000) // return ()=>{ // clearInterval(intervalId) // }},[])據我了解,將空數組作為第二個參數會使 componentDidUpdate() 不會調用 useEffect ,因此其他兩個方法都會調用它。我想要我不明白的是為什么在 componentWillUnmount() 時不調用 useEffect - 我認為這是使用新計時器更新組件之前的時刻。最后為什么即使我取消注釋/注釋clearInterval()部分它也會以相同的方式工作?
為什么 useEffect 鉤子不為每個渲染設置新的 setInterval ?
jeck貓
2023-09-14 18:15:22