網(wǎng)站關(guān)鍵詞的分類站外引流推廣渠道
1. useState
useState 是 React 提供的最基本的 Hook,用于在函數(shù)組件中添加狀態(tài)管理。它返回一個狀態(tài)變量和一個更新狀態(tài)的函數(shù)。
1.1. 使用場景
適合管理簡單的狀態(tài)。
適合管理組件內(nèi)部的局部狀態(tài)。
1.2. 示例代碼
import React, { useState } from 'react';function Counter() {const [count, setCount] = useState(0);return (<div><p>Count: {count}</p><button onClick={() => setCount(count + 1)}>Increment</button><button onClick={() => setCount(count - 1)}>Decrement</button></div>)
}
2. useReducer
useReducer 是 useState 的替代方案,適合用于管理更復(fù)雜的狀態(tài)邏輯。它通過 reducer 函數(shù)來管理狀態(tài),類似于 Redux。
如果我們組件內(nèi)部狀態(tài)足夠多,那么狀態(tài)會逐漸趨于復(fù)雜,這時,我們需要更好的編程范式來解決狀態(tài)存儲與更新。如果之前使用過 Redux,React 單向數(shù)據(jù)流告訴了我們,狀態(tài)的管理需要注意以下幾點:
1. 使用一個對象存儲變量(state);
2. 訂閱模式實現(xiàn)對于該對象的變更響應(yīng)處理(reducer);
3. 定義更改對象變更的動作(action);
4. 訂閱該對象的變更,完成狀態(tài)到視圖的映射(ui = fx(state));
用一句話來概括:狀態(tài)由 useReducer 借助 reducer 生效,狀態(tài)的變更由 dispatch 發(fā)起,最終狀態(tài)變更驅(qū)動視圖更新。
2.1. 使用場景
適合管理復(fù)雜的狀態(tài)邏輯。
狀態(tài)更新依賴于先前狀態(tài)。
2.2. 示例代碼
import React, { useReducer } from 'react';
const initialState = { count: 0 };
function reducer(state, action) {switch (action.type) {case 'INCREMENT':return {