一、基本用法
我們可以直接使用watch:{屬性名 (newValue,oldValue) {}} 或者 watch:{屬性名:function (newValue,oldValue) {}}
當我們改變name的值時,就會觸發該監聽函數
二、watch的可分為 handler() 和 參數配置
handler() 函數,之前我們寫的wantch 方法其實默認寫的就是這個handler。
參數:immediate屬性,wantch監聽有一個特點:就是剛開始綁定的時候是不會執行的。要等到name值發生改變的時候才執行監聽函數。如果 想要在最初綁定的時候執行,就可以設置這個屬性,就會在最初綁定的時候執行。默認值為false。
參數:deep屬性,默認值是false,當對對象進行數據監聽時,並不會監聽到對象內部屬性的變化,即屬性變化不會觸發對象的監聽函數。
當在輸入框中輸入數據改變obj.a時,會發現是無效的。默認情況下,handler只監聽obj這個屬性它的引用的變化,只有給obj賦值的時候它才會 監聽到,比如我們在生命周期中的mounted函數中去重新給obj賦值時,就會觸發監聽函數。但想要監聽obj對象中的a屬性,就可以使用參數 deep。

deep屬性的意思是深入觀察,監聽器會層層的往下遍歷,給對象的所有屬性都加上這個監聽器,這樣就導致性能開銷非常大,任何修改obj里面任何一個屬性都會觸發這個監聽器里的 handler。優化,可以使用字符串形式的監聽。

這樣,vue層層遍歷下去,直到遇到屬性name,才給name設置監聽函數。
三、觸發監聽執行多個方法
當被監聽的屬性發生改變時,還可以同時執行多個方法,這時被監聽的屬性使用數組可以設置多項方法,形式包括字符串、函數、對象。