Vue數(shù)據(jù)監(jiān)聽(tīng)方法watch的使用
watch本身很容易理解, watch負(fù)責(zé)將視圖中的數(shù)據(jù)與某個(gè)函數(shù)關(guān)聯(lián)起來(lái)
當(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)聽(tīng)方法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被改變"); }, // 頁(yè)面加載之初先執(zhí)行一次handle immediate: true, // 深度檢查屬性,即使對(duì)象內(nèi)部的屬性值改變, 也能檢測(cè)到(比較消耗性能) 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腳手架書(shū)寫(xiě) <template> //觀察數(shù)據(jù)為字符串或數(shù)組 <input v-model="example0"/> <input v-model="example1"/> /當(dāng)單觀察數(shù)據(jù)examples2為對(duì)象時(shí),如果鍵值發(fā)生變化,為了監(jiān)聽(tīng)到數(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>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue刷新頁(yè)面后params參數(shù)丟失的原因和解決方法
這篇文章主要給大家介紹了vue刷新頁(yè)面后params參數(shù)丟失的原因和解決方法,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-12-12vue3+elementui-plus實(shí)現(xiàn)無(wú)限遞歸菜單示例代碼
這篇文章主要介紹了vue3+elementui-plus實(shí)現(xiàn)無(wú)限遞歸菜單,當(dāng)一個(gè)組件的 key 值發(fā)生變化時(shí),Vue 會(huì)認(rèn)為這是一個(gè)新的組件實(shí)例,會(huì)強(qiáng)制重新創(chuàng)建和渲染這個(gè)組件,本文通過(guò)示例代碼詳細(xì)講解,需要的朋友可以參考下2024-04-04vue組件定義,全局、局部組件,配合模板及動(dòng)態(tài)組件功能示例
這篇文章主要介紹了vue組件定義,全局、局部組件,配合模板及動(dòng)態(tài)組件功能,結(jié)合實(shí)例形式分析了vue.js中組件的定義、全局組件、局部組件、配合模板組件及動(dòng)態(tài)組件的相關(guān)使用方法與操作注意事項(xiàng),需要的朋友可以參考下2019-03-03Vue PC端實(shí)現(xiàn)掃碼登錄功能示例代碼
目前大多數(shù)PC端應(yīng)用都有配套的移動(dòng)端APP,如微信,淘寶等,通過(guò)使用手機(jī)APP上的掃一掃功能去掃頁(yè)面二維碼圖片進(jìn)行登錄,使得用戶登錄操作更方便,安全,快捷,這篇文章主要介紹了Vue PC端如何實(shí)現(xiàn)掃碼登錄功能,需要的朋友可以參考下2023-01-01vue項(xiàng)目在env文件中設(shè)置的變量無(wú)效問(wèn)題及解決
這篇文章主要介紹了vue項(xiàng)目在env文件中設(shè)置的變量無(wú)效問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03Laravel 如何在blade文件中使用Vue組件的示例代碼
這篇文章主要介紹了Laravel 如何在blade文件中使用Vue組件,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06vue2筆記 — vue-router路由懶加載的實(shí)現(xiàn)
本篇文章主要介紹了vue2筆記 — vue-router路由懶加載示例,實(shí)例分析了vue-router路由懶加載的實(shí)現(xiàn),具有一定參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03