react 有兩種方式可以實現元件的定義,一種是通過函式實現,一種是通過class類實現。一般的通過class類實現的元件我們可以看到足夠多的生命週期、狀態state可供操作,而函式式元件則沒有生命週期和狀態值state。對就效能而言,由於函式元件需要初始化元件,而函式元件是直接通過return 返回jsx,因此函式元件的效能要優於類元件。為了效能考慮,一般的我們推薦使用函式元件來實現元件的定義。
出於操作考慮,react自從16.8.0版本開始支援hook功能,讓我們可以通過hook方式在函式元件中實現state、生命週期的監聽。這裡,我們介紹hook的一種用法usestate,通過usestate來實現狀態值的操作。操作之前,需要注意幾點:
在沒有hook之前,我們通常使用class元件的方式來實現狀態的管理:
import react,
from
'react'
;export
default
class
extends component ;}
render()
.<
/h2>
}>
click me
<
/button>
<
/div>);
}}
當使用hook在函式元件中實現狀態管理,對我們而言操作是變得更簡單了。
import react,
from
'react'
;function
counter()
>reset<
/button>
>
-<
/button>
>
+<
/button>
<
/>);
}
通過上面的示例,我們基本可以簡單的總結usestate的使用方法。
//usestate格式
const
[state, setstate]
=usestate
(initialstate)
;
usestate通過傳入乙個初始的物件值initialstate,從而返回乙個狀態值state(初始狀態值為initialstate),和乙個更新狀態的更新函式setstate。
setstate
(state+1)
;
React函式式元件值之useState
react hooks 是 react 16.8 的新增特性。它可以讓我們在函式元件中使用 state 生命週期以及其他 react 特性,而不僅限於 class 元件。react hooks 的出現,標示著 react 中不會在存在無狀態元件了,只有類元件和函式元件。狀態是隱藏在元件中的資訊,元件...
react純函式元件useState更新頁面不重新整理
const textlist,settextlist usestate 原陣列 settextlist 新陣列 當修改原陣列時,如果原陣列是個深層陣列 不只一層 使用settextlist修改時,不會觸發頁面重新整理 這個涉及到可變物件he不可變物件的知識,在vue和react中,如果更新可變物件時...
狀態管理庫vuex 狀態管理庫vuex
vuex是乙個專為vue.js應用程式開發的管理庫。狀態就是指元件之間共享的資料 vue專案中配置狀態管理庫vuex的流程 2建立狀態管理庫物件store 3對外丟擲store物件 4在mian.js中將store物件與當前專案相關聯 vuex是乙個專為vue.js應用程式開發的管理庫。狀態就是指元...