官术网_书友最值得收藏!

3.2 Hooks

React Hooks是React v16.8正式引入的特性,旨在解決與狀態有關的邏輯重用和共享等問題。

在React Hooks誕生前,隨著業務的迭代,在組件的生命周期函數中,充斥著各種互不相關的邏輯。通常的解決辦法是使用Render Props動態渲染所需的部分,或者使用高階組件提供公共邏輯以解耦各組件間的邏輯關聯。但是,無論是哪一種方法,都會造成組件數量增多、組件樹結構修改或者組件嵌套層數過多的問題。在Hooks誕生后,它將原本分散在各個生命周期函數中處理同一業務的邏輯封裝到了一起,使其更具移植性和可復用性。使用Hooks不僅使得在組件之間復用狀態邏輯更加容易,也讓復雜組件更易于閱讀和理解;并且由于沒有類組件的大量polyfill代碼,僅需要函數組件就可運行,Hooks將用更少的代碼實現同樣的效果。

React提供了大量的Hooks函數支持,如提供組件狀態支持的useState、提供副作用支持的useEffect,以及提供上下文支持的useContext等。

在使用ReactHooks時,需要遵守以下準則及特性要求。

·只在頂層使用Hooks。不要在循環、條件或嵌套函數中調用Hooks,確保總是在React函數組件的頂層調用它們。

·不要在普通的JavaScript函數中調用Hooks。僅在React的函數組件中調用Hooks,以及在自定義Hook中調用其他Hooks。

主站蜘蛛池模板: 遂平县| 霍山县| 博兴县| 张家口市| 湘潭县| 四子王旗| 达日县| 留坝县| 盐边县| 扶绥县| 嵊州市| 和静县| 凤阳县| 岫岩| 江永县| 临邑县| 鄯善县| 嵊州市| 平武县| 慈溪市| 安远县| 棋牌| 恩施市| 赞皇县| 德州市| 都匀市| 资阳市| 枞阳县| 衡南县| 临澧县| 廉江市| 遂溪县| 上蔡县| 山东省| 临桂县| 永安市| 宜兴市| 东辽县| 余干县| 余江县| 汾阳市|