React.js フレームワーク Redux 基本ケースの詳細な説明

React.js フレームワーク Redux 基本ケースの詳細な説明

react.js フレームワーク Redux

https://github.com/reactjs/redux

インストール:

npm インストール redux react-redux
#Reactをベースに、すでにインストール済み

Redux リファレンスドキュメント:
http://redux.js.org/

Reduxコアコンセプト: ストア

単純に言えば、各コンポーネントのStateや自分で定義した独立した状態を保存し、状態の読み取り、更新、監視などの統一された操作を実行するために使用されると理解できます。
http://redux.js.org/docs/basics/Store.html

這里寫圖片描述

減らす

公式によると、redux の基本的な使用法は次のようになります。

「redux」から {createStore} をインポートします。
「./reducers」からtodoAppをインポートします。
store = createStore(todoApp); を作成します。

createStore()に渡されるパラメータは関数 Function です。
Reduxのコンセプトは「Reduce」と呼ばれます。
Reduce の基本形式は次のとおりです。

関数 myFun(状態,アクション){
  // ...
}

もちろん、esmascript 2015 の矢印関数形式を使用して定義することもできます。

実践演習

1.まずReduceを定義しましょう

インフォリデュース:

//テストデータ let info = {
    title:"テストタイトル",
    クリック数:0
};

// パラメータ hull default (state = info, action) を通じてデータをエクスポートします =>{


    return state; // 返される値はテストデータです}

2. Reduceの準備ができました。Reduxを使い始めましょう

「./../redux/InfoReduce」からInfoReduceをインポートします。

「redux」から {createStore} をインポートします。
store = createStore(InfoReduce);

3. Redux の非常に重要なコンセプトstoreが作成されました。コンポーネントでどのように使用するかを見てみましょう。

// InfoDetailというコンポーネントを定義します。class InfoDetail extends React.Component{
    //コンストラクタ(props) {
        スーパー(小道具);
        // 初期状態 this.state = {
            infoData:store.getState() //ストア オブジェクト メソッドを通じてデータを取得します};
      }


        与える(){
            <div> を返す
                <h2>ニュースタイトル: {this.state.infoData.title}</h2>
                <span>クリック数: {this.state.infoData.clicknum}</span>
                <p><button>クリック音量を変更する</button></p>
            </div>
        }
}

store.getState()を通じてデータを取得します。

這里寫圖片描述

この時点で、基本的に次のことを理解しました。Reducers は、新しい状態を生成して Store に渡す指定された関数であり、コンポーネントは Store を通じて状態を取得してコンポーネント データを更新します。

行動を理解する

actionに関する公式ドキュメント:
アクション

実際、「アクション」という言葉から、それがビジネスを処理するために使用される操作であると推測できます。

前のコードでのactionはどこにありますか?
Reducer 関数を定義する場合、2 番目のパラメーターは次のようになります。

エクスポート デフォルト (状態、アクション)=>{}

1.アクションは操作なので、コンポーネントのイベント処理関数で必要になります。

<button onClick={this.addClick.bind(this)}>クリック数を変更する</button>

クリックイベント関数addClickをボタンにバインドする

2. addClick 関数で何が起こっているか見てみましょう。

        追加クリック(){
            //状態を変更する
            ストア.ディスパッチ({
                タイプ:"INFO_CLICK"
            })

            this.setState({ //状態を更新する
                情報データ:store.getState()
            })
        }

this.setState()状態を更新するために使用されることを以前に学習しました。
store.dispatch()は Redux 内のものです。このメソッドは実際にactionをディスパッチします。
タイプ別に区別します。

3. ニーズに応じて、アクションが処理する必要があるビジネスロジックはクリック数を増やすことです。

//テストデータ let info = {
    title:"テストタイトル",
    クリック数:0
};

// パラメータ hull default (state = info, action) を通じてデータをエクスポートします =>{

    if (action.type == "INFO_CLICK"){
        oldNum = state.clicknum とします。
        古い数値++;

        // 新しいデータを返します return Object.assign({},state,{clicknum:oldNum});
    }

    return state; // 返される値はテストデータです}

Reducer 関数では、 action.typeを使用してビジネス ロジックを判断し、処理します。

この時点で、なぜ Redux がまだ面倒なのかと疑問に思うかもしれません。はい、Redux は一般的に複雑なビジネス ロジックを持つプロジェクトで使用されます。

這里寫圖片描述

react.jsフレームワークにおけるReduxの基本的なケースの詳細な説明に関するこの記事はこれで終わりです。 react.jsフレームワークにおけるReduxの基本的な内容の詳細については、123WORDPRESS.COMの以前の記事を検索するか、以下の関連記事を引き続き参照してください。 今後とも123WORDPRESS.COMを応援してください。

以下もご興味があるかもしれません:
  • Javascript の基礎: 演算子とフロー制御の詳細な説明
  • JavaScriptの基本構文とデータ型の詳細な説明
  • JavaScript 基礎シリーズ: 関数とメソッド
  • JSP EL式の基礎を詳しく説明します
  • Java の基礎 - FastJson の詳細な説明
  • Javascriptの基本を詳しく説明

<<:  Windows DNS サーバーに「ワームレベル」の脆弱性が露呈、17 年間存在

>>:  Apache クロスドメイン リソース アクセス エラーの解決策

推薦する

Mysqlの自動増分IDについて知らないことがあるかもしれません

導入: MySQL を使用してテーブルを作成する場合、通常は自動インクリメント フィールド (AUT...

Reactは感情を使ってCSSコードを書く

目次導入:感情のインストール:一般的な CSS コンポーネントを追加します。既存のコンポーネントにス...

Vue プロジェクトを使用して複数のプロキシを構成する際の注意事項

Vue プロジェクトの開発プロセスでは、ローカル デバッグの利便性のため、通常、vue.config...

MySQL binlog の使用方法の詳細な説明

binlog は、MySQL のすべての DML 操作を記録するバイナリ ログ ファイルです。 bi...

XHTML と CSS によるオブジェクト指向プログラミング

<br />XHTML と CSS がオブジェクト指向だったらよかったのに。 。太陽は北...

CSS における位置指定の概要

CSS には 4 種類の配置方法があり、シナリオによって効果が異なります。ここでは、これら 4 種類...

JavaScriptは両端キューを実装する

この記事の例では、両端キューを実装するためのJavaScriptの具体的なコードを参考までに共有して...

k8sとDockerの関係についての簡単な説明

最近、プロジェクトでは kubernetes (以下、k8s と表記、k と s の間には 8 つの...

Windows 10 の仮想マシンに Mac システムをインストールするグラフィック チュートリアル

1. 仮想マシンバージョン15.5.1をダウンロードする公式サイトから直接最新バージョンをダウンロー...

jQueryはシンプルなコメントエリアを実装します

この記事では、参考までに、簡単なコメントエリアを実装するためのjQueryの具体的なコードを紹介しま...

Centos8 で yum を使用して mongodb 4.2 をインストールする方法

1. リポジトリファイルを作成するmongodb の公式インストール ドキュメントを参照し、次のスク...

VMware に CentOS7 をインストールし (静的 IP アドレスを設定)、Docker コンテナ経由で mySql データベースをインストールする (非常に詳細なチュートリアル)

2 年生から、これらのインストールと設定の仕方を尋ねられました。簡単なチュートリアルを作成し、ここ...

CSS のマージンの崩壊問題を解決する方法

まず、マージン崩壊が発生する 3 つの状況を見てみましょう。 1. 隣接する 2 つのブロックレベル...

Linux で PHP を 5.6 にアップグレードする実用的な方法

1: ターミナルに入ったらPHPのバージョンを確認する php -v出力は次のようになります。 PH...

Vueの計算プロパティの詳細な説明

1. 計算属性とは何ですか? 簡単に言えば、計算された結果が属性に保存されるもので、キャッシュとして...