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 クロスドメイン リソース アクセス エラーの解決策

推薦する

VMware での Linux CentOS6.9 インストール グラフィック チュートリアル

技術初心者として、初めて Linux システムをインストールするプロセスを記録しています。まず、Wi...

JSにおける4つのデータ型判定方法

目次1. 型2. インスタンス3. コンストラクター4.toString() この記事では、4 つの...

mysql エラー 1033 を解決する方法: ファイル内の情報が正しくありません: 'xxx.frm'

問題の説明1. 収集ステーションのデータベース2. データが無い状態での移動は問題ありませんが、デー...

MySQL slow_log テーブルを InnoDB エンジンに変更することはできません。詳細な説明

背景mysql.slow_log からスロー クエリ ログを取得するのは遅く、テーブルは csv テ...

MySQLインデックスに関する詳細を共有する

数日前、同僚からMySQLのインデックスについて質問を受けました。大体わかっているのですが、まだ練習...

AWS無料サーバーアプリケーションとネットワークプロキシ設定チュートリアルの詳細な説明

目次予防必要条件AWSアカウントを申請する仮想マシンの申請と有効化仮想マシンを申請するセキュリティグ...

Linux でのファイルの編集、保存、終了の実践的な説明

Linux でファイルを編集した後、保存して終了するにはどうすればよいですか?保存して終了するコマン...

React Hook の使用例 (一般的なフック 6 つ)

1. useState: 関数コンポーネントに状態を持たせる使用例: // カウンター impor...

css-loader を使用して vue-cli で css モジュールを実装する

【序文】 Vue と React の CSS モジュール ソリューションはどちらも、実装にローダーに...

よく忘れられがちな CSS のヒント 26 選

これは、よく使われるけれども忘れられがちな CSS 実装方法のコレクションです。抜けや追加があれば、...

証明書を使用してリモート Docker サーバーに接続する方法

目次1. スクリプトを使用してDockerのTLSを暗号化する2. Dockerの設定を変更してリモ...

ab ツールを使用してサーバー上で API ストレス テストを実行します。

目次1 システムスループットの簡単な紹介2 試験方法2.1 クライアントテストツール2.1.1 GE...

CentOS 6.4 MySQL 5.7.18 のインストールと設定方法のグラフィックチュートリアル

Centos6.4 で mysql5.7.18 をインストールするための具体的な手順が全員に共有され...

Dockerでnginxをデプロイし、設定ファイルを変更する方法

Dockerでnginxをデプロイするのはとても簡単ですたった 1 行のコマンド: docker 実...

Mysql マスタースレーブ同期構成の実践の詳細な説明

1. はじめに以前、「MySQL マスター スレーブ同期の原理」という記事を書きました。この記事を読...