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

3.2.1 useState

useState類似于React類組件中的state和setState,可維護和修改當前組件的狀態(tài)。

useState是React自帶的一個Hook函數(shù),使用useState可聲明內(nèi)部狀態(tài)變量。useState接收的參數(shù)為狀態(tài)初始值或狀態(tài)初始化方法,它返回一個數(shù)組。數(shù)組的第一項是當前狀態(tài)值,每次渲染其狀態(tài)值可能都會不同;第二項是可改變對應狀態(tài)值的set函數(shù),在useState初始化后該函數(shù)不會變化。useState的類型為:

initialState僅在組件初始化時生效,后續(xù)的渲染將忽略initialState:

如上例中的inputValue,當初始值傳入另一個狀態(tài)并初始化后,另一個狀態(tài)函數(shù)將不再依賴inputValue的值。

使用Hooks的方式非常簡單,引入后在函數(shù)組件中使用:

類似于setState,單擊按鈕時調(diào)用setCount更新了狀態(tài)值count。當調(diào)用setCount后,組件會重新渲染,count的值會得到更新。

當傳入初始狀態(tài)為函數(shù)時,其僅執(zhí)行一次,類似于類組件中的構造函數(shù):

此外,useState返回的更新函數(shù)也可使用函數(shù)式更新:

如果新的state需要依賴先前的 state 計算得出,那么可以將回調(diào)函數(shù)當作參數(shù)傳遞給setState。該回調(diào)函數(shù)將接收先前的state,并將返回的值作為新的state進行更新。

注意,React規(guī)定Hooks需寫在函數(shù)的最外層,不能寫在if…else等條件語句中,以此來確保Hooks的執(zhí)行順序一致。

主站蜘蛛池模板: 行唐县| 万载县| 古丈县| 平遥县| 土默特右旗| 昂仁县| 吉隆县| 当涂县| 建宁县| 苗栗县| 方正县| 吉安县| 陵川县| 民乐县| 苍溪县| 延吉市| 乌什县| 逊克县| 仪征市| 达尔| 松滋市| 文水县| 聊城市| 扶绥县| 阿瓦提县| 乌兰察布市| 临高县| 庄浪县| 邯郸市| 兰考县| 弥渡县| 尼勒克县| 门源| 太仓市| 广饶县| 青州市| 天长市| 万州区| 仲巴县| 新龙县| 喀喇|