React:Cleanup Lifecycle & useEffect()

Class

  componentWillUnmount(){
    console.log('[Person.js] unmount');
  }

funtional

return+【】——在unmount的时候调用

  useEffect(()=>{    //每次update都会被调用
    console.log('[Cockpit.js] useeffect');
    //Http request...

    setTimeout(()=>{
      alert('Saved data to cloud!');
    },1000)
    return ()=>{
      console.log('[Cock.js] cleanup wordk in useEffect');
    }
  },[]);   //传入作用与的对象——persons改变,调用effect
  //空array则只run开始那一次

return(无第二个参数)——在每一次render后调用
return的内容在函数前出现;
在这里插入图片描述

  useEffect(()=>{
    console.log('[Cock.js] 2nd useEffect');
    return ()=>{
      console.log('[Cock.js] cleanup wordk in 2nd useEffect');
    }
  });

在return中设置umount内容

在timeout之前隐藏cockpit,即调用return(unmount),便不会弹出alert

const Cockpit =(props)=>{
  useEffect(()=>{    //每次update都会被调用
    console.log('[Cockpit.js] useeffect');
    //Http request...

    const timer=setTimeout(()=>{
      alert('Saved data to cloud!');
    },1000)
    return ()=>{
      console.log('[Cock.js] cleanup wordk in useEffect');
      clearTimeout(timer);
    }
  },[]);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值