ホームページ >ウェブフロントエンド >jsチュートリアル >ReduxをReactフックとReactコンテキストAPIに置き換える方法
状態管理戦略:
2つの基本的な状態タイプ、
に対処しますローカル状態:
個々のコンポーネントに固有の単純な値(数字、文字列)に対して
を使用して管理されています。
useState
グローバル状態:useReducer
コンテキストAPIを使用して実装された複数のコンポーネントで共有されます。 これには、コンテキストオブジェクト(useState
)とプロバイダーコンポーネントを作成して、消費者コンポーネントをラップします。 子供のコンポーネントsetValue()
フックを使用してコンテキストにアクセスします。useReducer
例1: createContext
を備えたシンプルなカウンター
useContext
この例は、ボタンを増分し、デクリメントするボタンを備えたカウンターを構築します。 カウンター値は、コンテキストを使用してグローバル状態として管理されます。
:useState
と
を定義します
:context/counter-context.js
。CounterContext
を使用してカウンター値を表示します
CounterContextProvider
:components/counter-display.js
を使用して状態を更新するボタンをインクリメント/デクリメントします。
useContext
ディスプレイとボタンのコンポーネントを
App.js
:CounterView
。
例2:useReducer
このより高度な例は、連絡先を管理するためのCRUD(作成、読み取り、更新、削除)アプリケーションを示しています。状態はより複雑で、効率的な管理のためにuseReducer
を必要とします。
:context/contact-context.js
は、異なるアクションを処理するための、ContactContext
、およびinitialState
関数を定義します(add、削除)。
reducer
:コンテナコンポーネント、views/contact-view.js
。。
ContactContextProvider
:選択した行を追跡するためにcomponents/contact-table.js
とローカル状態変数を使用して連絡先リストとハンドルの削除を表示します。
useContext
新しい連絡先を追加するためのフォーム、を使用してアクションを発送します。 カスタムcomponents/contact-form.js
フックは、フォームの処理を簡素化します
useContext
useFormInput
。をレンダリングします
App.js
ContactView
よくある質問(FAQ):
提供されるFAQSセクションは包括的で十分に構築されており、その使用、ベストプラクティス、他の州の管理ソリューションとの比較など、ReactフックとコンテキストAPIの重要な側面をカバーしています。 このセクションでは、一般的な開発者の質問と懸念について効果的に対処します
以上がReduxをReactフックとReactコンテキストAPIに置き換える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。