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 ファイルの高速リカバリ ソリューションの共有
Linux サーバーのホスト ファイルの構成hosts ファイルは、Linux システム内の IP ...
1. Kali Linuxシステムのバージョンを確認するコマンド: cat /etc/issue 2...
MySQL 一時テーブルは、一時的なデータを保存する必要がある場合に非常に便利です。一時テーブルは現...
この記事では、例を使用して MySQL の重複インデックスと冗長インデックスについて説明します。ご参...
序文プロジェクト開発では、アイコンを使用する方法はたくさんあります。iconfont で適切なアイコ...
処理能力と同時実行性を向上させるために、Web コンテナは通常、リクエストを処理するタスクをスレッド...
HTMLでCSSを定義するには、埋め込み、リンク、インラインの3つの方法が一般的に使用されます。 1...
前面に書かれたfilter:blur と filter:contrast がこのような素晴らしい化学...
元の URL: http://segmentfault.com/blog/ciaocc/119000...
1. TEXTとBLOBの違いTEXT ファミリと BLOB ファミリの唯一の違いは、BLOB 型は...
新しい Linux ディストリビューションには rc.local ファイルがなくなりました。サービス...
ルーティングvue-router4 では API の大部分は変更されていないため、変更点のみに焦点を...
目次前面に書かれた序文ChromeプラグインとはChrome プラグイン開発を学ぶことの意義は何です...
この記事では、例を使用して、CentOS プラットフォーム上で LAMP 環境を迅速に構築する方法に...
この記事では、MySQL のマルチテーブル共同クエリ操作について説明します。ご参考までに、詳細は以下...