個(gè)人對(duì)于React Hooks的理解
關(guān)注公眾號(hào) 前端人,回復(fù)“加群”
添加無(wú)廣告優(yōu)質(zhì)學(xué)習(xí)群
React組件可以分為 類組件 和 函數(shù)組件 。類組件具有生命周期、狀態(tài),而函數(shù)組件卻沒(méi)有。
在React 16.8 新出來(lái)的Hooks 可以讓React函數(shù)組件具有狀態(tài),并且提供了類似componentDidMount 和 componentDidUpdate 等生命周期方法。
栗子??:
我們寫(xiě)一個(gè)函數(shù)組件,如果想要更新它的狀態(tài),在 React 16.8版本之前,就得重寫(xiě)成 類組件。
在 React 16.8 出來(lái)的Hooks 之后,這就變得簡(jiǎn)單多了。
使用新的 useState hook 向普通函數(shù)組件添加狀態(tài)。
const [clicked,useClicked] = useState(false);
// 分離出來(lái)寫(xiě)法
const arr = useState(false);
const clicked = arr[0];
const useClicked = arr[1];
Hooks 在16.8版本之后可以使用,它能讓我們?cè)诓皇褂胏lass就能使用state和其它的react的特性。
比如:之前我們想要用state必須先寫(xiě)一行:
class App extends React.Component{}
這樣才能用state和setState,但是現(xiàn)在有了hooks,就不需要了。我們可以在普通函數(shù)組件里面使用hooks實(shí)現(xiàn)之前class里的state、生命周期等。
為什么要使用hooks呢?
因?yàn)閟etState。生命周期之類的函數(shù)其實(shí)是定義給組件的一些鉤子函數(shù),它們被耦合在了class里面,所以我們定義有狀態(tài)組件和有生命周期的組件必須定義class。而hooks的出現(xiàn),把這些功能性的鉤子和class分離開(kāi)了。
hooks包含 state hook 、effect hook、context hook等基礎(chǔ)的hooks,還有一些自定義hooks和一些其他的鉤子,可以再官方文檔里面查看。
原文:https://blog.csdn.net/qq_39721418/article/details/104131413
最后
關(guān)注公眾號(hào),置頂公眾號(hào),鬼哥,一起前端進(jìn)階
公眾號(hào)里回復(fù)關(guān)鍵詞 資料包領(lǐng)取我整理的進(jìn)階資料包公眾號(hào)里回復(fù)關(guān)鍵詞 加群,加入前端進(jìn)階群喜歡的話文章點(diǎn)個(gè) 在看,支持一下把!
