Vue學習(五)偵聽屬性全攻略

2022-06-06 19:21:10 字數 1912 閱讀 6944

雖然計算屬性在大多數情況下更合適,但有時也需要乙個自定義的偵聽器。這就是為什麼 vue 通過watch選項提供了乙個更通用的方法,來響應資料的變化。當需要在資料變化時執行非同步或開銷較大的操作時,這個方式是最有用的。

使用watch選項允許我們執行非同步操作 (訪問乙個 api),限制我們執行該操作的頻率,並在我們得到最終結果前,設定中間狀態。這些都是計算屬性無法做到的。

返回值:unwatch

情況一:不使用immediate: true在**函式外使用unwatch(),**函式一次都不會觸發

情況二:不使用immediate: true,**函式內使用unwatch(),**函式只觸發一次

情況三:使用immediate: true,在**函式使用unwatch(),**函式被呼叫

情況四:使用immediate: true,並在**函式內使用unwatch(),**函式被呼叫兩次

注意:immediate: true立即以表示式的當前結果觸發**,也就是**函式會被執行兩次,一次是vue例項化之後,一次是a發生變化

乙個物件,鍵是需要觀察的表示式,值是對應**函式。值也可以是方法名,或者包含選項的物件。vue 例項將會在例項化時呼叫$watch(),遍歷 watch 物件的每乙個屬性。

watch: , 

//方法名

b: '

somemethod',

//該**會在任何被偵聽的物件的 property 改變時被呼叫,不論其被巢狀多深

c: ,

deep:

true

},

//該**將會在偵聽開始之後被立即呼叫

d: ,

// 值是陣列:如果監聽的是非物件,會順序執行陣列中的每乙個方法,如果監聽的是物件,只會執行設定了deep:true的方法

e: [

'handle1',

function handle2 (val, oldval) ,

, /*...

*/},

,deep:true

},],

//可以直接監聽物件的指定屬性

'e.f

': function (val, oldval)

},

var vm = new

vue(

},methods:

},watch:]}

}).$mount(

'#box');

document.onclick =function()

created(),

watch:

}

可以優化為:

watch: 

}

vue官網教程:偵聽器watch

vue官網api:偵聽器 watch

vue官網api:偵聽器$watch

DataList控制項 屬性全攻略

datalist控制項 datalist控制項使用模板顯示資料來源中的資料項 屬性說明 alternatingitemstyle 獲取datalist控制項中交替項的樣式屬性。alternatingitemtemplate 獲取或設定datalist中交替項的模板 attributes 獲取web控...

vue 學習之計算屬性 方法 偵聽屬性

計算屬性 computed 方法 methods 偵聽屬性 watch 1.計算屬性 computed 模板變內的表示式過於複雜時,難以維護,這時便可以使用計算屬性 例如 模板中放入過長或邏輯複雜的表示式時,後期維護會比較複雜 可以轉化為 在計算屬性中 computed 2.方法 methods 同...

vue3 學習 計算屬性和偵聽屬性

它接受 getter 函式並為 getter 返回的值返回乙個不可變的響應式 ref 物件 import from vue 按需匯入 const count ref 1 const plusone computed count.value 因為需要返回乙個值所以需要使用箭頭函式返回 console....