Object.definePropertyの理解文法:
objとpropは簡単に理解できます。例えば、変数を次のように定義します。 定数o = { 名前:'xbhog' } このうち、objはoを参照し、propはo.nameを参照します。次に、記述子を見てみましょう。
注意: 記述子内の値属性、書き込み可能属性、および取得属性、設定属性は相互に排他的です。存在できるのは 1 つだけです。 前提条件を理解した上で、Vueでv-modelの双方向バインディングを実装してみましょう。まず実装コードを見てみましょう。 <!DOCTYPE html> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <title>js による双方向データバインディングを実現する</title> </head> <本文> <input type="text"/><br> <h1>こんにちは: <span>データの更新</span></h1> <!-- js を通じて双方向データバインディングを実現する --> <スクリプト> // メソッドは、指定されたセレクターまたはセレクター グループに一致するドキュメント内の最初の HTMLElement オブジェクトを返します。var ipt = document.querySelector('input'); var p = document.querySelector('span'); var データ = {名前:""}; /* oninput イベントは、ユーザーが何かを入力したときにトリガーされます。 このイベントは、<input> または <textarea> 要素の値が変更されたときにトリガーされます。 */ ipt.oninput = 関数(){ // ipt.value の値を data.name の値に渡します データ名 = ipt.値; } //ipt.value をハイジャックする Object.defineProperty(データ、名前、{ //データサブスクリプション get(){ return ipt.value; //アクセス時にgetメソッドが呼び出されます}, //データハイジャック //name:value 設定(値) { p.innerHTML = 値; ipt.value = 値; } }) </スクリプト> </本文> </html> まず、document.querySelector を使用して input タグと span タグの HTML オブジェクトを取得し、属性名が空のデータ オブジェクトを定義します。 oninput イベント リスナーを使用して、ユーザー入力を監視します (このイベントは、<input> または <textarea> 要素の値が変更されたときにトリガーされます)。 ipt.value の値を data.name の値に渡します。 データ名 = ipt.値; Object.defineProperty を使用して、ユーザー入力データを乗っ取ります。
Object.defineProperty(データ、名前、{ //データサブスクリプション get(){ return ipt.value; //data.nameにアクセスすると、getメソッドが呼び出され、ipt.valueを呼び出して現在の値を取得します}, // データハイジャック set(value) { // データを設定するときにsetメソッドが自動的に呼び出されます p.innerHTML = value; ipt.value = 値; } 効果はより明白です: 設定方法: 取得方法: 最終的な効果: 参考文献:
要約するこれで、js を使用して Vue2.0 で双方向データバインディング機能を実装する方法についての記事は終了です。js を使用して Vue2 双方向バインディングを実装することに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: MySql 8.0.16 バージョンのインストールでは、「UTF8B3」ではなく「UTF8B4」が使用されるように求められます。
この記事では、以下の環境をテストします。 CentOS 7 64 ビット 最小 MySQL 5.7 ...
目次Linux - ファイル記述子、ファイルポインタ、インデックスノード1. Linux - ファイ...
Vue ルーティング this.route.push ジャンプ ページが更新されない1. 背景概要:...
1.コンテナ内の /etc/hosts、/etc/resolv.conf、/etc/hostname...
目次1. 例2. 兵士100人を作成する3. 質問4. 改善点5. エレガント? 6. JSの父から...
MySQL操作情報のクエリ show status -- すべての MySQL 操作情報を表示します...
序文インデックスを追加した場合と追加しなかった場合の違いを反映するには、数百万のデータを使用する必要...
バグ図のように、削除文とパラメータをデータベースにコピーして実行し、2つのデータを削除しようとしたの...
注意: .NET FrameWork はコア モードで実行できないため、コア インストール モードの...
この記事では、フロントエンドのカウントダウン効果を実現するためのJavaScriptの具体的なコード...
1. コンポーネントをインストールする yum install epel-rpm-macros.no...
この記事を読む前に、ボリュームとバインドマウントの基本を理解しておいてください。詳細については、次の...
キーペアの分離1 つ以上の Linux インスタンスから SSH キー ペアのバインドを解除します。...
ガラス窓今日実現するのは雨滴効果です。ただし、雨滴効果を実現する前に、まずは曇りガラス効果を作成しま...
CentOS7 システムを使用するのは今回が初めてで、ネットワーク構成を行う際に多くの問題が発生し...