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の助けを借りて詳しく説明します

推薦する

要素 UI に基づいてクエリ コンポーネントを段階的にカプセル化する方法

目次関数基本的なクエリ関数クエリ条件の初期化ページのレンダリングクエリと表示の最適化をさらに強化プル...

MySQL 8.0.22 zip圧縮パッケージ版(無料インストール)のダウンロード、インストール、および構成手順の詳細

目次最初のステップはMySQLをダウンロードすることですステップ2: ダウンロードした圧縮パッケージ...

AngularJSループオブジェクトプロパティで動的列を実装するアイデアの詳細な説明

動的な列を実現するための Angularjs ループ オブジェクト プロパティ利点: オブジェクトを...

mysql5.7.20 での最初のログイン失敗に対する簡単な解決策

まず、 (1)MySQL 5.7にはデフォルトのパスワードがあるデフォルトのパスワードを見つける g...

PostgreSQL正規表現の一般的な機能の概要

PostgreSQL正規表現の一般的な機能の概要正規表現は、複雑なデータ処理を必要とするプログラムに...

MySqlは、外部ネットワーク接続クライアントの低速問題を解決するためにskip-name-resolveを使用します。

Tencent Cloud上に構築されたMySQLは、開発用コンピュータでNavicatを使用して...

Iframe 適応高さコードに関する 3 つの議論

B/S システム インターフェースを構築する場合、メイン ページ index.html 内に他のペー...

Linux で大きなファイルの内容を消去または削除する 5 つの方法

Linux ターミナルでファイルを操作しているときに、Linux コマンドライン エディターでファイ...

スケーラブルな列の完全な例を実現するための Ant 設計 Vue テーブル

ant-design-vue テーブルのスケーラブルな列の問題に対する完璧なソリューション。固定列と...

Linux でバックグラウンド タスクを実行するために nohup と screen を使用する例と違いの簡単な分析

SSH ターミナル (putty、xshell など) を使用して Linux サーバーに接続し、時...

突然外部ネットワークからDockerにアクセスできなくなる問題の解決方法

マスターのメソッドによると、原因は sysctl net.ipv4.ip_forward であること...

Nginx を使用してフロントエンドのクロスドメイン問題を解決する方法

序文Vue アプリケーションなどの静的ページを開発する場合、クロスドメインになる可能性のあるインター...

Vue の nextTick について話す

データが変更されても、DOM ビューはすぐには更新されません。変更直後にノードまたはその値を取得しよ...

Docker ベースの Redis マスタースレーブ クラスタの実装

目次1. Redisイメージを取得する2. 6つのRedisコンテナを作成する3. Redisコンテ...

Linux CentOS 7.4 で mysql5.7.20 のパスワードを変更する方法

MySQL がバージョン 5.7 にアップグレードされた後、セキュリティが大幅に向上しました。しかし...