VUEウォッチリスナーの基本的な使い方の詳しい説明

VUEウォッチリスナーの基本的な使い方の詳しい説明

リスナーは通常、データの変更を監視するために使用され、デフォルトではデータが変更されたときに実行されます。

監視対象データの名前が関数名としてここに入力されます。この関数には 2 つのパラメータがあり、1 つは新しい値で、もう 1 つは古い値です。

Vue では、データの変更に応答するために watch が使用されます。watch の使用方法は大きく分けて 3 つあります。

1. 次のコードはwatchの簡単な使用法です

<div id="アプリ">
    <input type="text" v-model="firstName" />
</div>
 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
 <スクリプト>
var vm = 新しい Vue({
    el:"#アプリ",
    データ:{
        firstName:"张"
    },
    時計:{         
        firstName:(新しい値、古い値){
//firstNameは監視したいデータの名前です。v-modelのfirstNameを監視するなど、監視したい関数名を使用します。                    
//newVal: 変更後の値、つまり最初のパラメータを示します。位置を入れ替えないでください。//oldVal: 変更前の値を示します。
            console.log({newVal,oldVal}); // {newVal: "陈", oldVal: "张"}
        }
        // 監視関数を直接記述し、cityName 値が変更されるたびに関数を実行します。
        // 監視データの直後に文字列形式でメソッド名を追加することもできます: firstName: 'nameChange'
    },
    方法:{
        名前変更(){
         }
    }
})
 vm.firstName = "陈"; // 監視対象の値を変更する</script>

2. 即時監視

watch の基本的な使い方では、値が初めてバインドされるときにはリスニング関数は実行されず、値が変更されたときにのみ実行されるという特徴があります。値が最初にバインドされたときに関数を実行する必要がある場合は、immediate 属性を使用する必要があります。

時計:
  ファーストネーム: {
    ハンドラ(新しい名前、古い名前) {
      this.fullName = newName + ' ' + this.lastName;
    },
    { 即時: true }
  }
}

監視対象データは、ハンドラメソッドと即時処理を含めてオブジェクト形式で記述されます。上記の簡単な記述で記述した関数は、実際にはこのハンドラメソッドを記述しており、デフォルトでは省略されています。

3. ハンドラメソッド

<div id="アプリ">
    <div>
        <p>番号: {{ myNumber }}</p>
        <p>数値: <input type="text" v-model.number="myNumber"></p>
    </div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<スクリプト>
新しいVue({
    el: '#app',
    データ: {
        myNumber: 'Dawei'
    },
    時計:
        私の番号: {
            ハンドラ(newVal, oldVal) {
                コンソールにログ出力します。
                コンソールにログ出力します。
            },
            //immediate が true の場合、コールバック関数はすぐにトリガーされます。false の場合、上記の例と同様に、コールバックはすぐには実行されません。
            即時: 真
          }
      }
 })
</スクリプト>
//ハンドラメソッドはウォッチで実行する必要がある特定のメソッドです

4. 深い属性

オブジェクトやプロパティをどのように監視するのでしょうか?それではdeep属性を紹介しましょう。その役割がこの問題を解決する鍵となります。

 <div id="ルート">
    <p>obj.a: {{obj.a}}</p>
    <p>obj.a: <input type="text" v-model="obj.a"></p>
</div> 
 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
 <スクリプト>
    新しいVue({
        el: '#root',
        データ: {
            オブジェクト: {
                 123 です
            }
        },
        時計:
            オブジェクト: {
            ハンドラ(新しい名前、古い名前) {
                console.log(新しい名前、古い名前);
            },
            即時: true、
            深い:本当
            }
        } 
})
</スクリプト>

上記のコードは deep:true を付けて追加しないとコンソールでは実行されません。初回のみ実行され、出力結果は未定義になります。

デフォルトでは、ハンドラーは obj プロパティの参照の変更のみを監視します。obj に値を割り当てたときのみ監視します。

このとき、ディープ オブザベーションを使用できます。リスナーはレイヤーごとに下に移動し、このリスナーをオブジェクトのすべてのプロパティに追加しますが、これには時間がかかりすぎます。

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • Vueウォッチでメソッドを呼び出す際の落とし穴を解決する
  • Vueウォッチの監視方法の概要
  • vue での監視データの変更と監視の各属性の詳細な説明
  • Vue でのウォッチ リスナーのタイミングのトリガー (ウォッチの落とし穴と解決策)

<<:  CSS3はトランジション効果を実現するためにtransitionプロパティを使用する。

>>:  docker で PostgreSQL データベースをインストールして永続化する方法

推薦する

JavaScriptの基本構文とデータ型の詳細な説明

目次JavaScript のインポート1. 内部ラベル2. 外部紹介基本的な構文データ型番号弦ブール...

MysqlクエリJSON結果に関連する関数の概要

JSON 形式のフィールドは、MySQL 5.7 で追加された新しい属性ですが、基本的には文字列とし...

Navicat Premiumを使用してMySQLデータベースにリモート接続する方法

新しい接続を作成する側がクライアントに相当し、接続される側がサーバーに相当します。手順は次のとおりで...

複数のサーバーにNginxリバースプロキシを実装する方法

Nginx は複数のサーバーをリバース プロキシします。つまり、nginx に異なるリクエストを送信...

MySQL ストアド プロシージャのクエリ コマンドの概要

以下のように表示されます。 mysql.proc から名前を選択します (db='データベー...

Apache をインストールした後、サービスを開始できません (サービスを開始するとエラー コード 1 が表示されます)

目次1. エラーメッセージ2. エラーの原因3. 解決策1. エラーメッセージ1. インストール後、...

Vueカスケードドロップダウンボックスの設計と実装

目次1. データベース設計2. フロントエンドページ3. 完全なデモフロントエンド開発では、カスケー...

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

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

Vueはカルーセルアニメーションを実装します

この記事では、カルーセルアニメーションを実現するためのVueの具体的なコードを例として紹介します。具...

MySQL 8.0.11 MSI バージョンのインストールと構成のグラフィック チュートリアル

この記事では、MySQL 8.0.11 MSIバージョンのインストールと設定のチュートリアルを参考ま...

MySQL 最適化技術における Limit クエリの最適化分析

序文実際のビジネスでは、ページングは​​一般的なビジネス要件です。次に、制限クエリを使用します。制限...

DockerはRedisをインストールし、操作用のビジュアルクライアントを導入します

1 はじめにRedis 、 ANSI C言語で開発されたKey-Valueベースの高性能NoSQLデ...

IIS 7.5はURL書き換えモジュールを使用してWebページのリダイレクトを実現します。

Apache では構成ファイルで Web ページまたは Web サイトの書き換えを簡単に設定できる...

MYSQL における char と varchar の違い

CHAR 型と VARCHAR 型は似ていますが、主に格納場所、末尾のスペース、取得方法が異なります...

Dockerコミットの使い方の詳しい説明

場合によっては、ベースイメージに特定の依存関係をインストールする必要があります。Dockerfile...