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でサウンドを再生するいくつかのテクニック

推薦する

alpineをベースにdockerfileで作成したtomcatイメージの実装

1.アルパインイメージをダウンロードする [root@docker43 ~]# docker pul...

dockerコマンドの使用にはsudoは必要ありません

docker デーモンは通常の TCP ポートではなくホストの Unix ソケットにバインドする必要...

Linux 圧縮ファイルコマンド zip の使用例

「.zip」形式は、Windows システムでファイルを圧縮するために使用されます。実際、「.zip...

MySQLのタイムゾーンを表示および設定する方法

1. データベースのタイムゾーンを確認する '%time_zone' のような変数を...

CSS3 クリアフロートメソッドの例

1. 目的この記事を通じて、誰もがフロートをクリアする原理と方法を理解し、最終的にこの記事が最良であ...

優れたHTML印刷コードがページめくりをサポート

ylbtech_html_print HTML 印刷コード、ページめくりをサポートコードをコピーコー...

Docker可視化管理ツールであるDocker UIの使用

1. DockerUIの紹介DockerUI は Docker API をベースとしており、Dock...

CentOS7 で docker を使用して Apollo 構成センターをデプロイする実装

Apollo オープンソース アドレス: https://github.com/ctripcorp/...

Golang を使って Docker API を実際に操作する

目次SDKのインストールローカル Docker の管理コンテナの実行バックグラウンドでコンテナを実行...

CSS リスト モデルでのマーカー タグの使用

この記事では主に、 list-itemの下にある::master疑似要素、 list-style-i...

要素シャトルフレームのパフォーマンス最適化の実装

目次背景解決新しい質問高度な背景シャトル ボックスが大量のデータを処理すると、レンダリングされる D...

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

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

Element-ui の組み込み 2 つのリモート検索 (ファジークエリ) の使用方法の説明

問題の説明フロントエンドリモート検索やファジークエリと呼ばれる種類のクエリがあります。 Ele.me...

Linux における「!」の知られざる使用法のまとめ

序文実際、Linux では、控えめな「!」が驚くほど多くの用途で使用されています。この記事では、「!...