面试题:useeffect如何做到首次渲染不执行,只有状态更新时才执行?

useeffect如何做到首次渲染不执行,只有状态更新时才执行?

我试了下面三种依赖写法,都会在每次执行,请问怎么写才能首次不执行呢?

 useEffect(() => {
    console.log('空数组');
  }, []);

  useEffect(() => {
    console.log('每次执行');
  })

  useEffect(() => {
    console.log('依赖数组');
  }, [age])
阅读 3.3k
2 个回答
const isMounted = useRef(false);

useEffect(() => {
    if(!isMounted.value) {
        isMounted.value = true
    } else {
        console.log('只在deps更新时执行')
    }
},deps)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏