useEffect(() => console.log('mount') , [] );
useEffect(() => console.log('update'));
useEffect(() => () => console.log('unmount'), []);
// effect + cleanup ( mount + unmount )
useEffect(() => {
const timeout = setTimeout(setVisible, 10, false);
return () => clearTimeout(timeout);
}, []);