React-hook-useEffect

70 阅读1分钟

useEffect的第二个参数很重要,是个数组。里面如果有值(可能有多个值),该值发生变化后,useEffect钩子的函数就会重新执行。如果是空数组,就只会执行一次

  1. 模拟DidMount
useEffect(()=>{
        console.log('模拟DidMount')
    },[])
  1. 模拟DidUpdate【第一次进来也会执行】
    useEffect(()=>{
        console.log('模拟DidUpdate')
    },[count])
  1. 模拟WillUnMount【return 函数,每次re-render都会被调用】
useEffect(()=>{
        const timer = window.setInterval(()=>{
            console.log(Date.now())
        },1000)
        //模拟WillUnMount
        return () =>{
            window.clearInterval(timer)
        }
    },[])