ReactとReduxの関係を詳しく説明

ReactとReduxの関係を詳しく説明

ドキュメント: Redux 中国語ドキュメント

公式の Redux ドキュメントでは、Redux を「予測可能な JavaScript アプリケーション状態管理コンテナー」と定義しています。

1. reduxとreactの関係

Redux は、React アプリケーションの状態管理を提供するだけでなく、他のフレームワークもサポートします。

React は DOM (UI ライブラリ) の抽象化レイヤーであり、Web アプリケーションの完全なソリューションではありません。したがって、データ処理やコンポーネント間の通信に関しては、React の方が複雑になります。

大規模で複雑なアプリケーションの場合、これら 2 つの側面が最も重要になります。そのため、React のみを使用して大規模なアプリケーションを作成することは困難です。

redux の利点:

アプリケーションのステータスを一元的に保存および管理する

コンポーネント通信の問題に対処するときは、コンポーネント間の階層関係を無視する

大規模で複雑なアプリケーションにおけるコンポーネント間の通信を簡素化

データフローが明確でバグを見つけやすい

2. Reactのマルチコンポーネント共有

すべてのコンポーネントの状態を抽出し、React コンポーネント ツリーに倣って集中型の状態ツリーを構築します。この状態ツリーは React コンポーネント ツリーと 1 対 1 で対応しており、React コンポーネント ツリーのステートフル モデリングに相当します。

├── 出典
   ├── store # reduxディレクトリ、一般的にはstoreと呼ばれる
   │ ├── index.js # ストアを定義してエクスポートします。リデューサーはインポートされます
   │ └── Reducer # リデューサー関数 ├── App.js # ルートコンポーネント、Father および Uncle コンポーネントをインポート

1. Reduxはコンポーネント階層を無視できる

2. コンポーネントシステムでは、reduxはサードパーティのグローバル「変数」です。

3. reduxの3つのコアコンセプト

コアコンセプト: storeactionreducer

1. 保存する

ストアは、アクションとリデューサーを統合した、Reduxのコアとなる倉庫であり、vuexのストアに似ています。

特徴:

  • アプリケーションにはストアが1つだけあります
  • アプリケーションの状態を維持し、状態を取得します: store.getState re.getState()
  • ストアを作成するときは、リデューサーをパラメータとして受け取ります: const st store = createStore(reducer)
  • ステータス更新を開始するときは、 action:store.dispatch(action)
'redux' から {createStore} をインポートします。
// ストアを作成する
const ストア = createStore(リデューサー)

2. アクション

actionは、次の 2 つのプロパティを持つ js オブジェクトです。

type : 属性を識別し、その値は文字列です。複数のタイプはアクションによって区切られます

payload : データ属性、オプション。このアクションによって運ばれるデータを示します

特徴:

  • 何をすべきか説明してください
  • JS オブジェクト。アクションの種類を区別するために type 属性が必要です。
  • 機能に応じて、対応する機能を完了するために追加のデータを伝送できます。
const action1 = { タイプ: 'addN'、 ペイロード: 12 }
//ストア.ディスパッチ(アクション1)
 
const action2 = { タイプ: 'add'、 ペイロード: 1 }

3. リデューサー(純粋関数)

効果:

1. 初期化状態

2. ステータスを変更する

状態の変更: 渡された古い状態とアクションに基づいて新しい状態を返します。

初期状態 = 0
関数リデューサー(状態 = initState, アクション) {
  状態を返す
}

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • ReactとReduxの配列処理の説明
  • 1 つの記事で React における Redux の初期の使用を理解する
  • react-reduxプラグインの詳細な紹介
  • React Redux 入門例
  • ReactとReduxの関係についての簡単な説明 react-redux

<<:  MySQLの外部結合と内部結合クエリの違い

>>:  コンテンツタイプの説明、つまりHTTPリクエストヘッダーのタイプ

推薦する

Tomcat が非同期サーブレットを実装する方法の詳細な説明

序文これまでの Tomcat シリーズの記事を通じて、私のブログを読んでいる学生は Tomcat に...

MySQL 時間統計方法の概要

データベースの統計を行う場合、多くの場合、年、月、日に基づいてデータを収集し、echart を使用し...

CentOSにPHP+Apache+MySQLのサーバー環境をインストールして構築する

Yum (フルネームは Yellow dog Updater, Modified) は、Fedora...

Mysql マルチテーブル結合クエリの実行の詳細について簡単に説明します。

まず、このブログのケースデモンストレーション テーブルを作成します。 create table a(...

Vueデータ変更検出の基本的な実装の簡単な分析

目次1. オブジェクトの変更検出2. オブジェクトに関する質問配列変更検出3.1 背景3.2 実装I...

MySQL (InnoDB) がデッドロックを処理する方法の詳細な説明

1. デッドロックとは何ですか?正式な定義は次のとおりです: 2 つのトランザクションが相手側で必要...

JavaScript ドキュメント オブジェクト モデル DOM

目次1. JavaScriptはページ内のすべてのHTML要素を変更できる1. IDでHTML要素を...

HTMLでキーワードを強調表示するのに最適なソリューション

最近、プロジェクトに取り組んでいるときに、Web ページ上のキーワードを強調表示する機能に遭遇しまし...

画像とテキストでHTTPヘッダーのあらゆる側面を理解する

HTTPヘッダーとはHTTP は「Hypertext Transfer Protocol」の略です。...

Linux での screen コマンドの使用方法の詳細な説明

GUNスクリーン:公式サイト: http://www.gnu.org/software/screen...

マークアップ言語 - 印刷スタイルシート

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

初心者向けウェブサイト構築チュートリアルの概要

これら 6 つの記事を書いた後、私は少し混乱し始めました。次にどこに書けばいいのか分かりません。ドメ...

CentOS7にJDK8をrpmモードでインストールする

CentOS 7が正常にインストールされると、OpenJDKのJREがデフォルトでインストールされて...

Tomcat および Web アプリケーションの Docker デプロイメントの実装

1.dockerをオンラインでダウンロードする yum インストール -y epel-release...

さまざまなネットワーク画像形式におけるPNGの利点の詳細な説明

BMP は、ハードウェア デバイスに依存せず、広く使用されている画像ファイル形式です。ビットマップ保...