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

推薦する

JavaScript は 3 つの一般的な Web 効果 (オフセット、クライアント、スクロール シリーズ) を実装します。

目次1. 要素オフセットシリーズ2. 要素表示領域クライアントシリーズ3. 要素スクロールシリーズ1...

Dockerコンテナを外部IPとポートにバインドする方法

Docker を使用すると、外部からコンテナにアクセスしたり、コンテナを相互接続したりすることで、ネ...

モバイルでのHTML5経由のファイルアップロード

ほとんどの場合、PC でファイルをアップロードするにはプラグインが使用され、フラッシュが導入されても...

fullpage.js フルスクリーンスクロールの具体的な使い方

1.fullpage.js ダウンロードアドレスhttps://github.com/alvarot...

LinuxでIPアドレスを手動で設定するための詳細な手順

目次1.まずネットワークカードの設定ディレクトリに入る2. ifcfg-ens33ネットワークカード...

MySQL 5.7.15 バージョンのインストールと設定方法のグラフィックチュートリアル

この記事では、MySQLバージョン5.7のインストール方法と使用方法、およびデータベースデータの保存...

MySQL 検査スクリプト (必読)

以下のように表示されます。 #!/usr/bin/env python3.5 psutilをインポー...

表内のコンテンツオーバーフローのレイアウト方法について

コンテンツオーバーフローとは何ですか?実際、テキストが大量にある場合、コンテンツ領域がそれだけの長さ...

yum 経由で CentOS に PHP をインストールするチュートリアル

まず、yumを使ってCentOSにPHPをインストールする方法を紹介します。 1. PHPのyumソ...

Webデザインチュートリアル(6):デザインへの情熱を持ち続ける

<br />前の記事:Webデザインチュートリアル(5):Webビジュアルデザイン。 1...

Win10 に Tomcat サーバーをインストールし、環境変数を構成する詳細なチュートリアル (画像とテキスト)

目次JDKをダウンロードしてインストールするTomcat 圧縮パッケージをダウンロードTomcatの...

静的ページと動的ページの実行メカニズムの説明

1. 静的ページとは、Web ページ内に HTML タグのみが含まれるページです。WEB 開発者がこ...

このポイントのJavaScriptの基本

目次これ方法オブジェクト内これを隠した厳密モード要約するJavaScript の this も不思議...

mysql はインデックスを無効にしますか?

mysql の IN はインデックスを無効にしますか?しませんよ! 結果をご覧ください: mysq...

MySQLとOracleのメタデータ抽出例分析

目次序文メタデータとは参照文書アドレスまずはMySQLについてお話しましょうOracleについて話し...