React双方向データバインディングの原理についての簡単な説明

React双方向データバインディングの原理についての簡単な説明

Vue学習し、 Vueの双方向データバインディングを深く理解している場合は、 Vue 2.0双方向データバインディングの核心は、実際にはObject.definePropertyを通じてデータハイジャックと監視を実現することであると理解するでしょう。

Vue 3.0では、オブジェクト全体を監視し、 Vue2.0を最適化するためにProxyが使用されます。

双方向データバインディングとは

データ モデルとビュー間の双方向バインディング。

データが変更されるとビューも変更され、ビューが変更されるとデータも同期して変更されます。つまり、ユーザーによるビューの変更は自動的にデータ モデルに同期され、データ モデルも同様に変更されると言えます。

双方向データ バインディングの利点: 一方向データ バインディングのように CRUD (作成、取得、更新、削除) 操作を実行する必要がありません。双方向データ バインディングは、フォームで最もよく使用されます。このように、ユーザーがフロントエンド ページで入力を完了すると、ユーザーの入力データが取得され、操作なしでデータ モデルに入力されます。

双方向データバインディングの実装

ただし、 Reactには双方向のデータバインディングメカニズムがないため、自分で実装する必要があります。

データ影響ビュー

実際、 React setState({ })メソッドを使用してデータを変更することでこの機能を実現するのに役立ちました。
( Reactが内部的に提供する変更メソッド) this.state.屬性名= 數據メソッドによるデータの変更は許可されません。

コード

React をインポートします。{ コンポーネント } から 'react' をインポートします。
// antd UI libraryimport { Button } from 'antd'; をインポートします。  
クラス Home は Component を拡張します {
    コンストラクタ(props) {
        スーパー(小道具);
        この状態 = { 
            入力値:''、
         };
    }   
    setValue=()=>{
        this.setState({
            inputVal: 「値の変更」
        })
    }
    与える() {
        戻る (
            <div className="ホーム" >
                ホームコンポーネント<p> {this.state.inputVal}</p>
                 {/* antd UI ライブラリの使用*/
                <Button type="primary" onClick={this.setValue}>データの変更</Button>
            </div>
        );
    }
}
デフォルトのホームをエクスポートします。

効果

ここに画像の説明を挿入

ビューはデータに影響する

Reactが提供するonChage 監聽事件データの動的な入力を実現するために使用されます。同時に、 valueまたはdefaultValueを使用してinputボックスの内容を表示します。表示の便宜上、ここではpタグを使用して内容を表示します。

コード

React をインポートします。{ コンポーネント } から 'react' をインポートします。
import { Button } from 'antd'; // antd UI ライブラリクラス Home extends Component {
    コンストラクタ(props) {
        スーパー(小道具);
        この状態 = { 
            入力値:''、
         };

    }    
    変化 = (ev)=>{
        this.setState({
            入力値:ターゲット値
        })
    }
    与える() {
        戻る (
            <div className="ホーム" >
                ホームコンポーネント <入力 
                    onChange={this.change}
                    // 値 = {this.state.inputVal}
                    デフォルト値={this.state.inputVal}
                    placeholder="テキストコンテンツを入力"
                 />
                <p>&emsp;{this.state.inputVal}</p>
            </div>
        );
    }
}
デフォルトのホームをエクスポートします。

効果

ここに画像の説明を挿入

知らせ:

valueバインディングを使用する場合、 valuedefaultValueのいずれか 1 つだけを使用できます。それ以外の場合は警告が報告されます。

これで、React 双方向データバインディングの原理に関するこの記事は終了です。React 双方向バインディングの関連コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • React における親コンポーネントと子コンポーネント間の双方向バインディングの問題
  • Vue、Angular、Reactにおける双方向データバインディングの原理の簡単な分析
  • React のプラグインを使用した場合とプラグインなしで双方向バインディングを実装する方法の詳細な説明
  • React は双方向バインディングのサンプルコードを実装します
  • React の双方向バインディングを本当に理解していますか?

<<:  ボタンと入力タイプの違いと注意点

>>:  VMware esxi6.5 のインストールと使用の詳細な手順

推薦する

JavaScript のガベージコレクションの仕組みの詳細な説明

目次ガベージコレクション (GC) はなぜ必要なのでしょうか?ガベージコレクションとは廃棄物の発生ガ...

MySQLは、統計クエリを最適化するために、sum、case、whenを巧みに使用します。

私は最近、会社で統計レポートの開発に関わるプロジェクトに取り組んでいました。データの量が比較的多かっ...

Vue2 における 12 種類のコンポーネント通信

目次1. 小道具2..同期3.vモデル4.参照5. $emit/v-on 6. $attrs/$li...

mysql 5.7.18 winx64 パスワード変更

MySQL 5.7.18 が正常にインストールされた後、バージョン 5.7 では空のパスワードでのロ...

JS は Baidu 検索ボックスを実装します

この記事の例では、Baidu検索ボックスを実装するためのJSの具体的なコードを参考までに共有していま...

JavaScriptでマクロを使用する方法

言語では、DSL を実装するためにマクロがよく使用されます。マクロを使用すると、開発者は JSX 構...

React スキャフォールディングのパスエイリアスを設定する方法

この記事を書いている時点でのReactのバージョンは16.13.1です1 npm run eject...

CentOS7でXShellとネットワーク設定を接続する方法

1. Linuxネットワーク構成ネットワークを構成する前に、まずローカル IPv4 アドレスやデフォ...

VirtualBox に CentOS、JDK、Hadoop をインストールする詳細なチュートリアル

目次1. 前提条件1.1 サポートされているプラ​​ットフォーム1.2 jdk および hadoop...

HTML に CSS を導入するいくつかの方法の紹介

目次1. HTMLタグ要素にCSSスタイルを直接埋め込む2. HTMLのheadセクションにおけるス...

divとtableの選択と組み合わせ方について簡単に説明します

ページレイアウトは、Web ページを扱い始めた頃からずっと気にかけていたことです。初期のテーブル構造...

ウェブサイトのアクセス速度を向上させるための徹底的な最適化に関するヒント

ウェブサイトのアクセス速度を向上させるための徹底的な最適化に関するヒント。ウェブサイトのアクセス速度...

Windows Server 2016 に Docker をインストールするプロセスと発生した問題

前提条件Windows Server でコンテナーを実行するには、Windows Server (半...

202 無料の高品質 XHTML テンプレート (1)

ここで 123WORDPRESS.COM はこれらのテンプレートの最初の部分を紹介します。各テンプレ...

JavaScript で Baidu Maps API にアクセスする方法と手順

目次1. Baidu Map API アクセス2. HTML で Baidu Map API を使用...