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'); } });在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); } },[]);