類組件缺點一:復雜且不容易理解的“this” Hooks解決方式:函數組件和普通JS函數非常相似,在普通JS函數中定義的變量、方法都可以不使用“this.”,而直接使用該變量或函數,因此你不再需要去關心“this”了。
類組件缺點二:組件數據狀態邏輯不能重用 Hooks解決方式: 通過自定義Hook,可以數據狀態邏輯從組件中抽離出去,這樣同一個Hook可以被多個組件使用,解決組件數據狀態邏輯并不能重用的問題。 類組件缺點三:組件之間傳值過程復雜。
缺點三:復雜場景下代碼難以組織在一起 Hooks解決方式: 通過React內置的useState()函數,可以將不同數據分別從"this.state"中獨立拆分出去。
降低數據復雜度和可維護性,同時解決類組件缺點三中“內部state數據只能是整體,無法被拆分更細”的問題。
通過React內置的useEffect()函數,將componentDidMount、componentDidUpdate、componentWillUncount 3個生命周期函數通過Hook(鉤子)關聯成1個處理函數,解決事件訂閱分散在多個生命周期函數的問題。