下面这个 react 的 useeffect 代码中的 return 卸载,清理函数为什么不运行

19次阅读

共计 516 个字符,预计需要花费 2 分钟才能阅读完成。

在看一本 react 书时,它是这么写的。

function App1(){const handleWindowsResize=()=>{console.log('windows size change')
  }


  useEffect(()=>{console.log('called')
    const timerObj = setInterval(()=>{console.log('每秒 +1')
    },1000)

    window.addEventListener('resize',handleWindowsResize)

    return ()=>{console.log('clear')
      clearInterval(timerObj)
      window.removeEventListener('resize',handleWindowsResize)
    }
  },[])


  return (
Hello world
) }

console 里面会定时输出 windows size change,而不会进入到 useEffect 里面清除定时器。
根据对书中理解,return 函数是在第二次执行 useEffect 之前执行的?
而上面的 useEffect 只会执行一次,是不是意味者 return 函数里面的代码不会被执行?

正文完
 0