沒法在組件之間複用數據處理的邏輯,或不夠直接,例如props和高階組件的實現方式html
複雜組件愈來愈難理解和維護,易引入bugreact
Class語法帶來複雜性api
只能在函數的最外層調用函數數組
只能在React的函數組件中調用Hook網絡
自定義hook命名規則(useSomething)函數
在React更新DOM以後運行一些額外的功能(訂閱,發送網絡請求)htm
分類(需清除和無需清楚的反作用)生命週期
useEffect默認狀況下每次渲染後執行,包括首次渲染get
傳遞給useEffect的函數若返回值爲函數,此函數將在組件銷燬時執行,以執行effect的清除工做class
若想執行只運行一次的effect(僅在組件掛載和卸載時執行),能夠傳遞空數組做爲useEffect的第二個參數
解決React組件中沒法靈活共享邏輯的問題
自定義hook以use開頭
相同hook不會共享state
參考文章