Vue數(shù)據(jù)監(jiān)聽方法watch的使用
watch本身很容易理解, watch負(fù)責(zé)將視圖中的數(shù)據(jù)與某個(gè)函數(shù)關(guān)聯(lián)起來
當(dāng)Vue視圖中的數(shù)據(jù)變化時(shí), 關(guān)聯(lián)的函數(shù)會(huì)被執(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,
// 深度檢查屬性,即使對(duì)象內(nèi)部的屬性值改變, 也能檢測到(比較消耗性能)
deep: true
},
"obj.name": {
handler(){
console.log("=>obj.name被改變");
}
},
tel:{
handler(){
console.log("tel被改變");
}
}
}
})
</script>
</body>
</html>
對(duì)應(yīng)一個(gè)對(duì)象,鍵是觀察表達(dá)式,值是對(duì)應(yīng)回調(diào)。值也可以是方法名,或者是對(duì)象,包含選項(xiàng)。在實(shí)例化時(shí)為每個(gè)鍵調(diào)用 $watch() ;
//使用官方vue-cli腳手架書寫
<template>
//觀察數(shù)據(jù)為字符串或數(shù)組
<input v-model="example0"/>
<input v-model="example1"/>
/當(dāng)單觀察數(shù)據(jù)examples2為對(duì)象時(shí),如果鍵值發(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ù)為對(duì)象或數(shù)組時(shí),curVal和oldVal是相等的,因?yàn)檫@兩個(gè)形參指向的是同一個(gè)數(shù)據(jù)對(duì)象
handler(curVal,oldVal){
conosle.log(curVal,oldVal)
},
deep:true
}
},
methods:{
a(curVal,oldVal){
conosle.log(curVal,oldVal)
}
}
}
</script>
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- vue?watch監(jiān)聽方法總結(jié)
- Vue使用watch監(jiān)聽一個(gè)對(duì)象中的屬性的實(shí)現(xiàn)方法
- Vue使用watch監(jiān)聽數(shù)組或?qū)ο?/a>
- VUE3中watch監(jiān)聽使用實(shí)例詳解
- vue中watch監(jiān)聽器的觸發(fā)時(shí)機(jī)(watch的坑及解決)
- vue中watch如何同時(shí)監(jiān)聽多個(gè)屬性
- vue中watch監(jiān)聽不到變化的解決
- 詳解Vue3中Watch監(jiān)聽事件的使用
- vue監(jiān)聽屬性watch的用法及使用場景詳解
相關(guān)文章
vue2.0在沒有dev-server.js下的本地?cái)?shù)據(jù)配置方法
這篇文章主要介紹了vue2.0在沒有dev-server.js下的本地?cái)?shù)據(jù)配置方法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-02-02
vue循環(huán)數(shù)據(jù)v-for / v-if最后一條問題
這篇文章主要介紹了vue循環(huán)數(shù)據(jù)v-for / v-if最后一條問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
Vue3響應(yīng)式高階用法之shallowReadonly()使用
在前端開發(fā)中,Vue3的shallowReadonly() API允許開發(fā)者創(chuàng)建部分只讀的狀態(tài),這對(duì)于保持頂層屬性不變而內(nèi)部屬性可變的場景非常有用,本文將詳細(xì)介紹?shallowReadonly()?的使用方法及其應(yīng)用場景,具有一定的參考價(jià)值,感興趣的可以了解一下2024-09-09
vue前端導(dǎo)出多級(jí)表頭的excel表的示例代碼
本文主要介紹了vue前端導(dǎo)出多級(jí)表頭的excel表的示例代碼,可以使用xlsx庫來創(chuàng)建Excel文件,下面就來具體介紹一下,感興趣的可以了解一下2024-06-06
vue?調(diào)用瀏覽器攝像頭實(shí)現(xiàn)及原理解析
這篇文章主要為大家介紹了vue調(diào)用瀏覽器攝像頭實(shí)現(xiàn)及原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
vue+Java后端進(jìn)行調(diào)試時(shí)解決跨域問題的方式
今天在開發(fā)中遇到有點(diǎn)小問題,vue+Java后端進(jìn)行調(diào)試時(shí)如何解決跨域問題,下面小編給大家分享解決方法,感興趣的朋友一起看看吧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

