useState 小結(jié)
useState
是React Hooks中的一個核心函數(shù),它允許在函數(shù)組件中添加狀態(tài)。useState
接受一個參數(shù),這個參數(shù)是狀態(tài)的初始值。調(diào)用useState
會返回一個數(shù)組,這個數(shù)組包含兩個元素:
- 當(dāng)前狀態(tài)的值:這是通過
useState
定義的狀態(tài)的當(dāng)前值,可以在組件內(nèi)部被讀取和顯示。 - 更新狀態(tài)的函數(shù):這是一個允許你更新狀態(tài)的函數(shù)。當(dāng)你調(diào)用這個函數(shù)并傳入新的狀態(tài)時,React會重新渲染組件,以反映狀態(tài)的變化。
useEffect 小結(jié)
useEffect
是另一個重要的React Hook,用于在函數(shù)組件中執(zhí)行副作用操作(如數(shù)據(jù)獲取、訂閱或手動更改React組件中的DOM)。useEffect
可以模擬類組件中的幾種生命周期*,具體取決于其第二個參數(shù)(依賴項數(shù)組)的內(nèi)容。
模擬
componentDidMount
:當(dāng)useEffect
的第二個參數(shù)為空數(shù)組[]
時,該回調(diào)函數(shù)僅在組件掛載后執(zhí)行一次,這類似于類組件中的componentDidMount
生命周期*。模擬
componentDidUpdate
:如果useEffect
的第二個參數(shù)包含了一個或多個值,那么當(dāng)這些值中的任何一個發(fā)生變化時,回調(diào)函數(shù)就會執(zhí)行。這可以用來在特定狀態(tài)或?qū)傩愿潞髨?zhí)行操作,類似于類組件中的componentDidUpdate
。模擬
componentWillUnmount
:如果useEffect
的回調(diào)函數(shù)返回了一個函數(shù),那么這個返回的函數(shù)會在組件卸載前執(zhí)行,類似于類組件中的componentWillUnmount
。這通常用于執(zhí)行清理操作,如取消訂閱、移除事件*等。
函數(shù)式組件的渲染
函數(shù)式組件通過直接返回*X或組件樹來模擬render
*。與類組件不同,函數(shù)式組件沒有顯式的render
*;相反,組件的返回值直接對應(yīng)于渲染結(jié)果。
模擬shouldComponentUpdate
在函數(shù)式組件中,沒有直接對應(yīng)shouldComponentUpdate
的*,但你可以使用React.memo
和useMemo
來優(yōu)化組件的渲染性能。
React.memo
:這是一個高階組件,用于對組件的props進行淺比較。只有當(dāng)props發(fā)生變化時,才會重新渲染組件,這有助于避免不必要的渲染。useMemo
:這個Hook返回一個記憶化的值。它僅會在其依賴項數(shù)組中的值發(fā)生變化時重新計算。這可以用于優(yōu)化昂貴的計算,避免在每次渲染時都重新執(zhí)行這些計算。