技術ブログ

(技術系中心)基本自分用備忘録なので、あくまで参考程度でお願いします。

監視プロパティ

監視プロパティ

特定のデータまたは、算出プロパティの状態を監視して、変化があった時に登録した処理を自動的に実行する。

事例)検索フォームの値が変わったタイミングで自動的にajax通信を行って結果を一覧表示

Watchメソッドのサンプル

<div id="app">
  <p>
    <input type="text" v-model:value="km">km
  </p>
  <p>
    <input type="text" v-model:value="m">m
  </p>
  <p>
    <input type="text" v-model:value="mm">mm
  </p>
</div>
new Vue({
  el: "#app",
    data: {
    km: 0,
    m: 0,
    mm: 0
  },
  watch: {
    km: function(value) {
        this.km = value
      this.m = value * 1000
      this.mm = value * 1000000
    },
    m: function(value) {
        this.km = value / 1000
      this.m = value 
      this.mm = value * 1000
    },
    mm: function(value) {
        this.km = value / 1000000
      this.m = value / 1000
      this.mm = value 
    }
  }
})

Vue - JSFiddle - Code Playground

算出プロパティと監視プロパティの違い

どちらも実装できる場合は算出プロパティを利用する(シンプルに実装できるので)

オプション

deep ネストしたデータも監視したい場合

$watchでオブジェクトの変更を監視する方法 - Qiita

immediate 初期読み込む時にフックしたい時に利用