1、首先確認watch是一個對象,必定要當作對象來用javascript
watch:{ }
對象:有鍵,有值。java
一、鍵:就是你要監控的那個傢伙,好比說$route,這個就是要監控路由的變化。或者是data中的某個變量。數組
二、值:函數
① 能夠是【函數】:就是當你監控的傢伙變化時,須要執行的函數,這個函數有兩個形參,第一個是當前值,第二個是變化後的值。spa
② 能夠是【函數名】:不過這個函數名要用單引號來包裹。.net
③ 能夠是【包括選項的對象】:選項包含有三個,以下:對象
a. 第一個handler:其值是一個回調函數。即監聽到變化時應該執行的函數blog
b. 第二個是deep:其值是true或false;確認是否深刻監聽。(通常監聽時是不能監聽到對象屬性值的變化的,數組的值變化能夠監聽到,所以:數據的改變不須要使用深度watch)ip
c. 第三個是immediate:其值是true或false,確認是否以當前的初始值執行handler的函數路由
var vm = new Vue({ data:{ a:1, b:2, c:3 }, watch:{ //值:函數 a:function(val, oldVal) { console.log('new: %s, old: %s', val, oldVal) }, //值:方法名 b:'someMethod', //選項的對象 c:{ handler:function(val, oldVal){ console.log(val, oldVal) }, deep: true, immediate: true } } });
參考地址:https://blog.csdn.net/wangxiaoxiaosen/article/details/78487089