Vue のリスナーの基本的な使用例

Vue のリスナーの基本的な使用例

序文

Vue は、watch オプションを通じてデータの変更に応答するより一般的な方法を提供します。このアプローチは、データが変更されたときに非同期またはコストのかかる操作を実行する必要がある場合に最も役立ちます。

1. リスナーの基本的な使い方

<div id="demo">{{ fullName }}</div>
var vm = 新しい Vue({
el: '#demo',
データ: { 
    ファーストネーム: 'Foo', 
    姓: 'バー', 
    fullName: 'Foo Bar' }, 
時計: 
    firstName: 関数 (val) { 
        this.fullName = val + ' ' + this.lastName }, 
    lastName: 関数 (val) { 
        this.fullName = this.firstName + ' ' + val } } })

このコードの目的は、firstName と fullName を監視し、変更があった場合に fullname の値を変更することです。

2. リスナー形式

メソッド形式のリスナー

  • デメリット 1: ページに初めてアクセスしたときに自動的にトリガーされない!
  • デメリット 2: オブジェクトをリッスンしている場合、属性のプロパティが変更されると、リスナーはトリガーされません。

オブジェクト形式リスナー

  • メリット1: ページに入るとすぐに自動で発動できる!
  • メリット2:監視対象内の属性が変更されたかどうかの詳細な監視が可能になります。

3. ページに入るとすぐに監視とディープモニタリングをトリガーする

ページに入るとすぐにリスナーをトリガーします

これは即時オプションを追加することで実現されます

定数vm = 新しいVue({
    el: '#app',
    データ: {
        情報:
            ユーザー名: 'admin'
        } 
    },
    時計:{
        情報:
            ハンドル(newVal){
                コンソールログ(新しい値)
            },
            // ページに入るとすぐにリスナーをトリガーしますimmediate: true
        }
    }
})

ディープモニタリング

上記のコードでは、ユーザー名が変更されたときに正常に監視できません。変更されるのはオブジェクト属性の値であるため、詳細な監視が必要です。deepオプションを追加するだけです。

定数vm = 新しいVue({
    el: '#app',
    データ: {
        情報:
            ユーザー名: 'admin'
        } 
    },
    時計:{
        情報:
            ハンドル(newVal){
                コンソールログ(新しい値)
            },
            // ページに入るとすぐにリスナーをトリガーしますimmediate: true,
            // 詳細な監視を実装します。オブジェクトのいずれかのプロパティが変更される限り、「オブジェクト監視」がトリガーされます。
            深い: 本当
        }
    }
})

ディープリスニングはリスニングオブジェクトのサブプロパティの値を返します。

上記のコードの実行結果は、info オブジェクトを印刷することです。username の値を印刷したいのですが、newVal.username を追加するのは面倒です。実際には、変更されたサブ属性の値を直接監視して印刷することができます。監視するサブ属性を一重引用符で囲むだけです。

定数vm = 新しいVue({
    el: '#app',
    データ: {
        情報:
            ユーザー名: 'admin'
        } 
    },
    時計:{
        'info.ユーザー名': {
            ハンドル(newVal){
                コンソールログ(新しい値)
            }
        }
    }
})

やっと

⚽この記事では、Vue のリスナーの基本的な使い方とディープリスニングの実装方法を紹介します。読んで何か得ていただければ幸いです〜

Vue のリスナーの基本的な使い方についてはこれで終了です。Vue リスナーの使い方についてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • vue3.0 のウォッチ リスナーの例の詳細な説明
  • Vue2 と Vue3 でウォッチ リスナーを使用する方法
  • Vue の計算プロパティとリスナーの使用の概要
  • vueリスナーウォッチでこれを呼び出すときに未定義の問題を解決する
  • Vue 学習ノート: 計算プロパティとリスナーの使用
  • Vue 2.0 リスナーウォッチ属性コードの詳細な説明
  • Vue の基本リスナーの詳細な説明

<<:  Dockerイメージストレージoverlayfsの使用

>>:  MySQLにおける分散ロックの考え方をDBの助けを借りて詳しく説明します

推薦する

Dockerイメージ解析ツールのダイブ原理解析

今日は、Docker イメージ、各レイヤーの内容を調べ、Docker/OCI イメージのサイズを縮小...

Linux でマウントされたファイルシステムの種類を表示する方法

序文ご存知のとおり、Linux は ext4、ext3、ext2、sysfs、securityfs、...

MySQL が自動的に再起動する問題の解決方法

序文最近、テスト環境で MySQL データベースが自動的に再起動し続ける問題が発生しました。原因は、...

フレームセットの共通プロパティ(フレームとウィンドウの分割)

フレームとは、Web ページ画面を複数のフレームに分割したもの(複数の Web ページという形で表示...

Xftp のダウンロードとインストールのチュートリアル (グラフィック チュートリアル)

Windows と Linux 間でファイルを転送する場合は、Xftp ツールを使用できます。この...

MySQL インデックスのパフォーマンス最適化の問題に対する解決策

MySQL によって作成される最適化はインデックスを追加することですが、インデックスを追加しても目的...

rem をモバイル デバイスに適応させる方法の例

序文モバイル端末のREM適応ソリューションのレビューと概要remの使い方rem 単位の計算は、HTM...

innodb_flush_method 値メソッド (例の説明)

innodb_flush_methodのいくつかの典型的な値 fsync: InnoDB は fs...

MySQL アップグレードのベストプラクティス

MySQL 5.7 には、オンライン DDL、マルチソース レプリケーション、拡張された半同期、テー...

Minio 軽量オブジェクト ストレージ サービスのインストールとブラウザの使用チュートリアル

目次導入インストール1. マウントするフォルダを作成する2. イメージをプルする3. コンテナを作成...

HTML テーブルタグと関連する改行の問題の詳細な分析

テーブルとは何ですか?テーブルは、データのキャリアである HTML テーブルです。以下は比較的標準的...

Adobe Brackets の簡単な使い方のグラフィックチュートリアル

Adobe Brackets は、HTML、CSS、JavaScript 用のオープンソースでシンプ...

実行中の Docker コンテナにボリュームを動的に追加する方法

以前、Docker コンテナの起動後にボリュームをマウントできるかどうか尋ねられたことがあります。m...

CSS の無効な行の高さ設定の問題の解決策

CSS の無効な行の高さ設定についてまず、次のコード文字列を記述します。 <!DOCTYPE ...

非常に実用的なTomcat起動スクリプトの実装方法

序文セキュリティ上の理由から、会社が Linux サーバーへのすべてのログインにセキュリティ制限を課...