✅ 6.1 クラスコンポーネントでの watch の書き方(@Watchデコレーター)


■ 要点(結論)


■ 基本構文(@vue/composition-api ではなく class-style)

@Watch('監視対象のプロパティ名', { immediate: true, deep: true })
onXXXChanged(newVal: 型, oldVal: 型) {
  // 変更時の処理
}


■ 使用例:childValue の変更を監視

// ファイル名: ParentComponent.vue
<script lang="ts">
import { Vue, Component, Watch } from 'vue-property-decorator';

@Component
export default class ParentComponent extends Vue {
  // 子コンポーネントとバインドされるデータ
  private childValue: string = '初期値';

  // childValueの変更を監視する
  @Watch('childValue')
  onChildValueChanged(newVal: string, oldVal: string) {
    console.log('childValue changed from', oldVal, 'to', newVal);
  }
}
</script>


✅ 解説

項目 内容
@Watch() クラスコンポーネント固有のデコレーター。指定したプロパティの変化を検知
引数 第一引数:プロパティ名(文字列)
関数名 自由につけられるが on[Property]Changed が一般的
メリット this.childValue などの参照が自然に書ける(OOP的)
注意点 @Watchは必ずメソッドに使う。プロパティには使えない

🎯 一言まとめ

クラスコンポーネントでは、@Watch('プロパティ名') を使えば、Composition API の watch() と同じ効果を得られる!