Context で React の状態を管理する

ユーチューブ:

コードサンドボックス:

動機

Context を使用して React の状態を処理するのはなぜですか? Reduxを使用してアプリケーション ストアを管理するのと同じ理由です。コンポーネントが互いに通信し、状態を持ち上げるのが面倒になる場合、Context はアプリケーションの状態を処理するためのネイティブな方法です。

前提条件

<App>コンテキストを使用するために、ローカル状態を使用するリファクタリングを行います。

ご覧のとおり、カウントを増減する 2 つのボタンを備えたカウンターがあります。

プロバイダー

<Provider>propを作成valueして 0に設定します。

<Provider>の最上位コンポーネントとしてレンダリングindex.js:

でプロバイダーvalueを取得useContextし<App>ます。

useReducer

レデューサー関数を作成します。

useReducer状態を渡し、から Provider prop にディスパッチしvalueます。

<App>新しいコンテキスト値で更新します。

消費者

の代替useContextはConsumerです。

まず、ConsumerContext からエクスポートします。

useContext次に、次のように置き換え<Consumer>ます。

<Consumer>prop のコールバック関数が必要childrenです。最初の引数は Providervalueです。

クラス

クラス コンポーネントの場合、Provider 値には次の場所でアクセスできますthis.context。

トド

改善案:

  • のカスタム フックを作成しuseContext(Context)ます。
  • アクション タイプを定数にリファクタリングします。
  • アクションクリエーターを作成します。
  • Context に設定displayNameして、React DevTools での可視性を向上させます。
  • YouTube ビデオ
  • CodeSandbox デモ
  • 環境
  • useReducer

提案された投稿

脳卒中の壊滅的な結果を避ける: 家族の旅から学ぶ 。

脳卒中の壊滅的な結果を避ける: 家族の旅から学ぶ 。

はじめに 脳卒中は、いつでも誰でも起こり得る医療上の緊急事態です。これは、脳の一部への血流が中断され、脳機能が突然失われることで発生します。

私が最もよく使用するコーディング リソース

私が最もよく使用するコーディング リソース

今週、毎日のメールリストのメンバーからメールを受け取りました。彼らは次のことを知りたかったのです。毎日、毎週、毎月どのリソースにアクセスしていますか? 素晴らしい質問です!私のワークフローと使用している主なリソースについての洞察を共有したいと思います。

関連記事

職場革命: 一流の専門家がハイブリッド ワークとリモート ワークについて語る

職場革命: 一流の専門家がハイブリッド ワークとリモート ワークについて語る

今日の急速に進化するビジネス環境において、ハイブリッドおよびリモートワークの概念は前例のない勢いを増しています。企業が従業員のニーズや期待の変化に適応し続ける中、さまざまな分野の専門家が集まり、この変革的な働き方のメリット、課題、将来について議論しています。

ジャーナル・アウトバート

ジャーナル・アウトバート

日記を開く: 1 日 1 枚の写真。私はいつも物語に魅了されてきました。

アートは政治的ではないのでしょうか?

アートは政治的ではないのでしょうか?

昨日、私たちは今年のユーロビジョン・ソング・コンテストの幕を閉じました。きらびやかでカオスなグランドフィナーレでスウェーデンの歌手ローリーンがトロフィーを持ち帰り、女性として初めて2回優勝し、ABBAがコンテストで優勝してから50年目にその栄冠をスウェーデンに持ち帰りました。 「ワーテルロー」で。彼らはポップ ミュージックの規範において最大のアーティストの 1 つになりました。

無限の命

大人になると、世界はそういうもので、あなたの人生はただ世界の中で生きていくだけで、決して命を危険にさらすことはなく、決められた道をたどって最後には死ぬだけで、失敗しないように努めるのだと言われがちです。壁を打ちすぎてはいけません。しかし、それは非常に限られた人生です。