react hooks

hooks就是爲了增強函數式組件的功能   內部狀態    生命週期  邏輯複用  副作用 等...

usestate()爲函數式組件引入了狀態的機制

useEffect()  管理副作用 

     副作用:

        異步請求

        訂閱事件

        變更DOM

useEffect(()=>{     //componentDidUpdate()
...
})

useEffect(()=>{ 
  ...               //componentDidMount()

  return ()=>{
  ...               //componentWillUnmount()
  }
},[])

useEffect()會在副作用結束後延遲一段時間執行(非同步執行)與 componentDidMount()  componentDidUpdate()有本質區別,在處理DOM變更時會有麻煩   用useLayoutEffect()代替

useLayoutEffect()

 

自定義hooks

實例:監聽組件掛載時間的hooks

const useTimer=()=>{
  const [duration,setDuration]=useState(0)

  useEffect(()=>{ 
    const mountTime=performance.now()
    const timer=setInterval(()=>{
      setDuration(performance.now()- mountTime)
    },1000)
    return ()=>{
       clearInterval(timer)
       const unmountTime=performance.now()
       const duration =unmountTime-mountTime
       setDuration(duration)   
  },[])

  return duration
}

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章