DOM を直接変更して操作する js や jQuery とは異なり、Vue は v-model を使用してデータの双方向バインディングを実装します。コントロールの種類に応じて、要素を更新するための適切な方法を自動的に選択します。 v-model は Vue の双方向バインディング命令であり、ページ上のコントロール入力の値を関連するバインドされたデータ属性に同期的に更新したり、データバインディング属性を更新するときにページ上の入力コントロールの値を更新したりすることができます。 公式ドキュメントでは次のように説明されています。 v-modelは単なる構文糖であり、実際の実装は
次のコード <input v-model="txt"> 本質的に <input :value="txt" @input="txt = $event.target.value"> 説明する: vueインスタンスが初期化されると、データの各プロパティが再帰的に走査され、各プロパティのgetメソッドとsetメソッドがdefinePropertyを通じて監視されるため、プロパティが再割り当てされると、変更を監視して対応するページコントロールを操作できます。 以下のコードを見てください。 Object.defineProperty(データ、名前、{ 得る(){ データ["name"]を返します。 }, set(newVal){ val = data["name"]とします。 場合 (val === newVal) { 戻る; } データ["名前"]=newVal; // 属性値の変更をリッスンします。ノードが対応する入力ノードの場合、node.value=newVal; } }) 要約する一方、モーダル レイヤーは Object.defineProperty を通じて各プロパティをハイジャックし、変更が検出されると、関連するページ要素を通じて更新されます。一方、テンプレートファイルをコンパイルすることで、入力イベントがコントロールのv-modelにバインドされ、ページ入力は関連するデータ属性値をリアルタイムで更新できるようになります。 Object.defineProperty は、読み取りおよび書き込み権限や列挙の可否など、オブジェクトのプロパティの特別な操作を制御するために使用されます。ここでは、主に、対応する 2 つの説明プロパティ get と set について学習します。v-model は、実際に get および set 操作を書き換えます。get は、name 属性の値を読み取ることによってトリガーされる関数であり、set は、name 属性の値を設定することによってトリガーされる関数です。 補充するv-model 修飾子: .lazy、.trim、.number lazy: 各入力イベントがトリガーされた後、入力ボックスの値がデータと同期され、lazy修飾子が追加されて、同期に変更イベントを使用するように変換されます。 <input v-model.lazy="msg"> トリム: 文字列の先頭と末尾からスペースを削除します <input v-model.trim="msg"> 数値: データを値型に変換する <input v-model.number="msg"> Vue の双方向イベントバインディング v-model の原理に関するこの記事はこれで終わりです。Vue の双方向イベントバインディング v-model に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Mysql の大きな SQL ファイルの高速リカバリ ソリューションの共有
目次1. psutilパッケージをインストールする次に、オペレーティングシステム内のすべてのサービス...
この記事では、jQueryプラグインを使用してマインスイーパゲームを実装する方法に関する3番目の記事...
目次意味構造例カスタムショートカットキー元に戻すとやり直し録音と再生マクロ要約する意味リクエストをオ...
ウェブサイトのフロントエンド開発で発生するセキュリティ問題は、クライアントブラウザで実行されるコード...
目次ヘッドレスブラウザとは何ですか?なぜ「ヘッドレス」ブラウザと呼ばれるのでしょうか?ヘッドレスブラ...
問題の原因ご存知のとおり、すべてのネットワーク動作は対応するネットワークトラフィックを生成し、すべて...
この物語は、今日の予期せぬ発見から始まります。同社には複数のウェブサイトがある。友達リンクにはお互い...
MySQLをインストールしてメモしておきます。うまくインストールできるか分かりませんが、試してみます...
目次1. プロジェクト環境2. プロジェクトの説明3. プロジェクトの手順1. インストール2. 構...
チャレンジ:文字列内の文字 &、<、>、" (二重引用符)、および &...
矢印関数は ES6 の新機能です。独自の this はありません。その this ポイントは外部のコ...
この記事では、Fedora 28 に i3 をインストールして簡単に設定する方法を説明します。 1....
1. MySQL マスタースレーブ非同期1.1 ネットワーク遅延MySQLのマスタースレーブレプリケ...
1. オーバーフローOverflow はオーバーフロー(コンテナ)です。コンテンツがコンテナを越える...
一般的に: [重要なフラグ1つ] > [特別なフラグ4つ] > 宣言順!importan...