- 深入理解React Router:從原理到實踐
- 李楊韜
- 441字
- 2021-04-16 16:10:49
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í)行順序一致。
- Mastering NetBeans
- LabVIEW2018中文版 虛擬儀器程序設計自學手冊
- 構建移動網(wǎng)站與APP:HTML 5移動開發(fā)入門與實戰(zhàn)(跨平臺移動開發(fā)叢書)
- MySQL 8 DBA基礎教程
- Learning Laravel 4 Application Development
- 鋒利的SQL(第2版)
- Learning Network Forensics
- INSTANT Passbook App Development for iOS How-to
- Python算法從菜鳥到達人
- Python High Performance Programming
- 搞定J2EE:Struts+Spring+Hibernate整合詳解與典型案例
- 基于SpringBoot實現(xiàn):Java分布式中間件開發(fā)入門與實戰(zhàn)
- Hands-On Full Stack Development with Spring Boot 2.0 and React
- Serverless Web Applications with React and Firebase
- Learning Unreal Engine Game Development