一.useState
hooks就是在函數(shù)組件中使用state通過useState實(shí)現(xiàn)的。

useState傳入一個(gè)初始值,生成一個(gè)數(shù)組,數(shù)組的第一位就是設(shè)置的變量,這里是count,第二位是對(duì)變量進(jìn)行改變的函數(shù),這里是setCount,可以對(duì)count進(jìn)行修改的。
二.useEffect
useEffect相當(dāng)于react的componentDidMount,componentDidUpdate,componentWillUnmount?三個(gè)生命周期函數(shù)的組合,

useEffect能夠返回一個(gè)函數(shù),用來清除上一次副作用留下的狀態(tài)。
useEffect還可以傳第二個(gè)參數(shù):
1.什么都不傳,組件每次?render?之后?useEffect?都會(huì)調(diào)用,相當(dāng)于componentDidMount?和?componentDidUpdate;
2.傳入一個(gè)空數(shù)組 [], 只會(huì)調(diào)用一次,相于componentDidMount和componentWillUnmount;
3.傳入一個(gè)數(shù)組,其中包括變量,只有這些變量變動(dòng)時(shí),useEffect?才會(huì)執(zhí)行。
三.useContext
useContext的使用相當(dāng)于react中的父組件傳值子組件,首先需要去創(chuàng)建一個(gè)context用createContext,然后通過創(chuàng)建的context提供value給其子組件,最后在子組件里面使用這個(gè)context就用到了useContext。

四.useReducer
userReducer的思想和redux相似,useReducer接收兩個(gè)參數(shù),第一個(gè)參數(shù)是一個(gè)函數(shù),第二個(gè)參數(shù)是useReducer變量的初始值,它返回一個(gè)變量和一個(gè)dispatch函數(shù),再通過dispatch來改變變量。

五.useMemo
useMemo用來緩存數(shù)據(jù),數(shù)據(jù)是需要通過計(jì)算而來,就可以用這個(gè)函數(shù)來緩存這個(gè)數(shù)據(jù),以至于我們?cè)谛薷乃鼈儧]有依賴的數(shù)據(jù)源的情況下,多次調(diào)用這個(gè)計(jì)算函數(shù),浪費(fèi)計(jì)算資源。

上面的例子中只有當(dāng)性別改變的時(shí)候才會(huì)調(diào)用changeSex方法,姓名的改變不會(huì)調(diào)用該方法,可以節(jié)省資源。
六.useCallback
緩存一個(gè)函數(shù),這個(gè)函數(shù)如果是父組件傳遞給子組件,或者自定義hooks里面的函數(shù),可以緩存這個(gè)函數(shù),不用每次重新聲明新的函數(shù),避免釋放內(nèi)存、分配內(nèi)存的計(jì)算資源浪費(fèi),子組件不會(huì)因?yàn)檫@個(gè)函數(shù)的變動(dòng)重新渲染。
七.useRef
useRef和ref非常相似,useRef可以獲取dom還可以存儲(chǔ)值。

上面的例子中,剛開始的inputEl是獲取了dom,后來的textRef是存儲(chǔ)了text這個(gè)值。
對(duì)于react hooks的介紹就這么多了,以上是react hooks中常用的函數(shù),前三個(gè)函數(shù)是react hooks中最基本的函數(shù)。