Vue 監視属性のグラフィック例の詳細な説明

Vue 監視属性のグラフィック例の詳細な説明

リスナープロパティとは何ですか?

🥰いわゆるモニタリングとは、組み込みオブジェクトのステータスやプロパティの変更を監視し、それに対応することです。プロパティのモニタリングとは、他のデータの変更を監視できることを意味します。

リスニングプロパティと計算プロパティの違いは何ですか?

計算されたプロパティはキャッシュされ、依存する値が変更されると結果が再計算され、DOM が更新されます。

プロパティはプロパティ値を監視し、定義された値が変化すると、対応する関数が実行されます。

使用方法の主な違い:

計算プロパティは非同期タスクを実行できません。計算プロパティは通常、サーバーを要求したり、非同期タスクを実行したりするために使用されません。これは、これには長い時間がかかる可能性があり、計算プロパティはリアルタイムで更新する必要があるためです。したがって、この非同期タスクは、listening プロパティを使用して実行できます。

一言で言えば、コンピュータでできることは時計でもでき、コンピュータでできないことは時計でもできる。

監視プロパティの使用

監視構成項目を使用して、監視するプロパティを構成項目に書き込みます。プロパティ値が変更されると、ハンドラー関数のコールバックがトリガーされます。計算されたプロパティの変更を監視することもできます。

例:

入力ボックスの変更を監視する

コード

<テンプレート>
<div class="main">
    私: <el-input v-model="name" placeholder="お名前を入力してください"></el-input>
    友達 1<el-input v-model="friends.friend_1" placeholder="名前を入力してください"></el-input>
    友達 2<el-input v-model="friends.friend_2" placeholder="名前を入力してください"></el-input>
</div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
  データ(){
    戻る {
      名前:「ロマンティック コーダー」
      friends:{friend_1:'张三',friend_2:'李四'}
    }
  },
  時計:{
    名前:{
      handler(newValue,oldValue){ //newValue 新しい値、oldValue 変更前の値 console.log(newValue,oldValue)
        this.friends.friend_1='王武'
      }
    },
    // マルチレベル構造 'friends.friend_1' 内の特定の属性の変更を監視します:{
      ハンドラー(新しい値、古い値){
        console.log(新しい値、古い値)
      }
    },
    '友達.友達_2':{
      ハンドラー(新しい値、古い値){
        console.log(新しい値、古い値)
      }
    },
  }
};
</スクリプト>

ディープモニタリング

オブジェクトが多層構造になっている場合、オブジェクトの多くのプロパティを監視する必要があり、各プロパティを個別に記述することを避ける必要があります。このとき、ディープ モニタリングが使用されます。

監視構成の監視プロパティ オブジェクトで deep を true に設定して、複数レベルのオブジェクトまたは配列内の値の変更を監視します。

 時計:{
    // マルチレベル構造内のすべての属性の変更を監視します friends:{
      ハンドラー(新しい値、古い値){
        console.log(新しい値、古い値、"aa")
      },
      deep:true, // ディープモニタリングを有効にする}
  }

注意:ここで問題があります。ディープモニタリングが発生すると、新しい値と古い値は同じになりますか?

理由:

公式説明:

オブジェクトまたは配列を変更する(置き換えるのではなく)場合、それらの参照は同じオブジェクト/配列を指しているため、古い値は新しい値と同一になります。 Vueは変更前の値のコピーを保持しません

これによりポインタが変更されます。私の記事「JS のディープコピー方法を知っていますか?」では、データストレージについて説明しました。

今すぐお電話ください

ディープ構成の場所と同じです。

現在のハンドラコールバックを直ちにトリガーするにはtrueに設定します

  時計:{
    名前:{
      handler(newValue,oldValue){ //newValue 新しい値、oldValue 変更前の値 console.log(newValue,oldValue)
        this.friends.friend_1='王武'
      },
      即時:true
    },
  }

ページが読み込まれたときに一度実行されるため、古いデータは未定義です。

最後に

ウォッチ リスニング プロパティは通常、データの永続化、イベントのディスパッチ、同期/非同期実行、フォーマットの検証などに使用されます。

Vue リスニング プロパティに関するこの記事はこれで終わりです。より関連性の高い Vue リスニング プロパティについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue2 は属性の変更を監視します。サンプルコードをご覧ください。
  • Vue2.0 監視属性の使用と計算属性の使用の詳細な説明
  • Vue.js を使用して属性の変更を監視する
  • Vueの監視プロパティの詳細な説明

<<:  初心者向け入門チュートリアル④:サブディレクトリのバインド方法

>>:  CSSでサウンドを再生するいくつかのテクニック

推薦する

バージョン管理ツール Rational ClearCase の紹介

Rational ClearCase は、コードやその他のソフトウェア開発資産のバージョン管理を実...

CSS3の3D効果を使って立方体を作成する

CSS3 の 3D 効果を使用して立方体を作成する方法を学ぶと、3D シーンの回転と変位のプロパティ...

HTML のフォームフォームのメソッド属性の紹介

1 メソッドは、データをサーバーに送信する方法を指定するプロパティです。 2 post と get ...

MySQL 5.7.21 解凍版のインストールと設定方法のグラフィックチュートリアル

私は頻繁にシステムをインストールするので、インストールのたびにいくつかのソフトウェアを再インストール...

Vue における {{}}、v-text、v-html の違いと用途の詳細な説明

{ {}} 値を取得すると、タグの元のコンテンツはクリアされませんv-textは値を取得し、タグの元...

テキストの円形スクロールアニメーションを実装するミニプログラム

この記事では、参考までに、テキストループスクロールを実現するアプレットの具体的なコードを例を挙げて紹...

Windows10にMySQL5.6.35データベースを2つインストールする

次のように、Win10 での 2 つの MySQL5.6.35 データベースのインストールを記録しま...

JS配列の次元削減のいくつかの方法の詳細な説明

2次元配列の次元削減配列インスタンスメソッド concat と ES6 スプレッド演算子を使用した次...

Vueは商品詳細ページの商品タブ機能を実装します

この記事の例では、商品詳細ページ機能を実現するためのVueの商品タブの具体的なコードを参考までに共有...

nginx の場所に複数の Proxy_pass メソッドがある

1. まず、nginxの位置情報に関する関連知識を確認しましょう1) 位置マッチング手順: ~ #波...

シンプルなアコーディオン効果を実現するjs

この記事では、アコーディオン効果を実現するためのjsの具体的なコードを参考までに共有します。具体的な...

Sparkの紹介とHadoopとの比較

目次1. SparkとHadoopの比較1.1 Haoopの欠点1.2 Hadoop MR に対する...

CentOS 8で自動更新を設定するための手順を完了する

データとコンピューターに対してできる最善のことは、それらを安全に保つことです。アップデートを有効にす...

MySQL で制限を使用するとパフォーマンスに影響するのはなぜですか?

まず、MySQL のバージョンについて説明します。 mysql> バージョンを選択します();...

JavaScript の遅延読み込み属性パターンを理解する

従来、開発者はインスタンスで必要になる可能性のあるデータに対して JavaScript クラス内にプ...