Vue數(shù)據(jù)監(jiān)聽方法watch的使用
watch本身很容易理解, watch負(fù)責(zé)將視圖中的數(shù)據(jù)與某個函數(shù)關(guān)聯(lián)起來
當(dāng)Vue視圖中的數(shù)據(jù)變化時, 關(guān)聯(lián)的函數(shù)會被執(zhí)行

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>監(jiān)聽方法watch的使用</title>
<script src="https://cdn.bootcss.com/vue/2.5.16/vue.js"></script>
</head>
<body>
<div id="root"></div>
<script>
var vm = new Vue({
el: "#root",
data: { obj: {name: "zhaoolee", age: 12} , tel:6666666},
template: `<div><div>姓名: {{obj.name}}</div>
<div>電話: {{tel}}</div>
<input type="text" v-model="obj.name">
<input type="text" v-model="tel"></div>`,
watch: {
obj: {
handler(){
console.log("obj被改變");
},
// 頁面加載之初先執(zhí)行一次handle
immediate: true,
// 深度檢查屬性,即使對象內(nèi)部的屬性值改變, 也能檢測到(比較消耗性能)
deep: true
},
"obj.name": {
handler(){
console.log("=>obj.name被改變");
}
},
tel:{
handler(){
console.log("tel被改變");
}
}
}
})
</script>
</body>
</html>
對應(yīng)一個對象,鍵是觀察表達(dá)式,值是對應(yīng)回調(diào)。值也可以是方法名,或者是對象,包含選項(xiàng)。在實(shí)例化時為每個鍵調(diào)用 $watch() ;
//使用官方vue-cli腳手架書寫
<template>
//觀察數(shù)據(jù)為字符串或數(shù)組
<input v-model="example0"/>
<input v-model="example1"/>
/當(dāng)單觀察數(shù)據(jù)examples2為對象時,如果鍵值發(fā)生變化,為了監(jiān)聽到數(shù)據(jù)變化,需要添加deep:true參數(shù)
<input v-model="example2.inner0"/>
</template>
<script>
export default {
data(){
return {
example0:"",
example1:"",
example2:{
inner0:1,
innner1:2
}
}
},
watch:{
example0(curVal,oldVal){
console.log(curVal,oldVal);
},
example1:'a',//值可以為methods的方法名
example2:{
//注意:當(dāng)觀察的數(shù)據(jù)為對象或數(shù)組時,curVal和oldVal是相等的,因?yàn)檫@兩個形參指向的是同一個數(shù)據(jù)對象
handler(curVal,oldVal){
conosle.log(curVal,oldVal)
},
deep:true
}
},
methods:{
a(curVal,oldVal){
conosle.log(curVal,oldVal)
}
}
}
</script>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue2.0在沒有dev-server.js下的本地?cái)?shù)據(jù)配置方法
這篇文章主要介紹了vue2.0在沒有dev-server.js下的本地?cái)?shù)據(jù)配置方法的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-02-02
vue循環(huán)數(shù)據(jù)v-for / v-if最后一條問題
這篇文章主要介紹了vue循環(huán)數(shù)據(jù)v-for / v-if最后一條問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
Vue3響應(yīng)式高階用法之shallowReadonly()使用
在前端開發(fā)中,Vue3的shallowReadonly() API允許開發(fā)者創(chuàng)建部分只讀的狀態(tài),這對于保持頂層屬性不變而內(nèi)部屬性可變的場景非常有用,本文將詳細(xì)介紹?shallowReadonly()?的使用方法及其應(yīng)用場景,具有一定的參考價值,感興趣的可以了解一下2024-09-09
vue?調(diào)用瀏覽器攝像頭實(shí)現(xiàn)及原理解析
這篇文章主要為大家介紹了vue調(diào)用瀏覽器攝像頭實(shí)現(xiàn)及原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
vue+Java后端進(jìn)行調(diào)試時解決跨域問題的方式
今天在開發(fā)中遇到有點(diǎn)小問題,vue+Java后端進(jìn)行調(diào)試時如何解決跨域問題,下面小編給大家分享解決方法,感興趣的朋友一起看看吧2017-10-10
一文詳解如何創(chuàng)建Vue3項(xiàng)目及組合式API
Vue3提供了一種組合式API,可以用來構(gòu)建可復(fù)用的組件和應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于如何創(chuàng)建Vue3項(xiàng)目及組合式API的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05

