React:Cleanup Lifecycle & useEffect()

    技术2025-09-15  19

    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); } },[]);
    Processed: 0.025, SQL: 9