vue.js 中的 watch 可用于監聽數據屬性的變化并執行操作。語法為:watch(expression, callback, options)。它支持使用字符串或函數監聽數據屬性,并在變化時調用回調函數,并可通過 options 配置是否立即調用、是否深層監聽和是否同步更新。
Vue.js 中 watch 的用法
Vue.js 中的 watch 是一個響應式 API,可讓你監聽數據屬性的變化并根據這些變化執行操作。
語法
<code class="js">watch(expression, callback, options)</code>
登錄后復制
參數
expression:要監聽的數據屬性。可以是字符串(屬性名)或函數(返回需要監聽的值)。
callback:當數據屬性發生變化時調用的函數。它接收兩個參數:新值和舊值。
options(可選):用于配置 watch 的可選對象。
示例
<code class="js">// 使用字符串 watch('message', function (newValue, oldValue) { console.log(`Message changed from "${oldValue}" to "${newValue}".`); }); // 使用函數 watch(function () { return this.count; }, function (newValue, oldValue) { console.log(`Count incremented from ${oldValue} to ${newValue}.`); });</code>
登錄后復制
選項
immediate:控制 watch 是否在組件初始化時立即調用回調函數,默認值為 false。
deep:控制 watch 是否深層監聽對象和數組的變化,默認值為 false。
sync:控制 watch 是否在數據屬性發生變化后立即調用回調函數,默認值為 false。
使用場景
使用 watch 的常見場景包括:
在數據屬性發生變化時更新 DOM
在數據屬性發生變化時觸發外部動作(例如,發出請求)
響應其他組件的事件