在工作中對于 Custom React Hooks 一些思考
當(dāng)我剛接手 React 項(xiàng)目的時候,就對整體項(xiàng)目代碼看了一遍,其中就有一個命名為 customer-hooks,打開一看,全都是命名為 usexxx 的 jsx 文件,后面了解到這是大佬們封裝的自定義 hook。
于是,今天就自己來總結(jié)一下對于 Custom React Hooks 一些思考。

自定義 Hook
以下來自 React 官網(wǎng) 關(guān)于自定義 Hook 的介紹:
與 React 組件不同的是,自定義 Hook 不需要具有特殊的標(biāo)識。我們可以自由的決定它的參數(shù)是什么,以及它應(yīng)該返回什么(如果需要的話)。換句話說,它就像一個正常的函數(shù)。但是它的名字應(yīng)該始終以 use 開頭,這樣可以一眼看出其符合 Hook 的規(guī)則。
而對于 Hook 的規(guī)則:
不要在循環(huán),條件或嵌套函數(shù)中調(diào)用 Hook, 確保總是在你的 React 函數(shù)的最頂層以及任何 return 之前調(diào)用他們。 只在 React 函數(shù)中調(diào)用 Hook
自定義 Hook 封裝了一些邏輯代碼,并能夠把數(shù)據(jù)向下傳遞到渲染樹的操作。
啟動一個 react 項(xiàng)目
可以通過如下命令快速創(chuàng)建簡單 react 應(yīng)用,詳細(xì)步驟可以參考官網(wǎng)。
?npx?create-react-app?react-demo
簡單的例子
下面編寫我們自定義的 Hook,本人還是比較菜雞,所以就拿阿里的 ahooks 官方文檔 學(xué)習(xí)了,在 src 文件目錄下創(chuàng)建如下目錄結(jié)構(gòu),用來存放我們的自定義 hook。
代碼是來自于 ahooks github 倉庫地址
PS:這里就不粘貼源碼了,大家可以在上述地址拿到。
我們的父組件代碼如下:
import?SubApp?from?'./subApp';
import?useBoolean?from?'./custom-hooks/useBoolean/index';
function?App()?{
??const?[state,?{?toggle,?setTrue,?setFalse?}]?=?useBoolean(true);
??return?(
????
??????Effects:{JSON.stringify(state)}</p>
??????
????????
button>
????????
評論
圖片
表情
