您好,登錄后才能下訂單哦!
怎么在vue.js中實(shí)現(xiàn)淺度監(jiān)聽和深度監(jiān)聽?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。
第一個(gè)淺度監(jiān)聽:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/vue.js"></script> </head> <body> <div id="app"> <p>{{a}}</p> <p>{}</p> </div> <script> var vm=new Vue({ el:"#app", data:{ a:10, b:15 } }); vm.$watch("a",function(){ alert('a變化了'); this.b=100; }); document.onclick=function(){ vm.a=2 } </script> </body> </html>
第二個(gè)深度監(jiān)聽
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/vue.js"></script> </head> <body> <div id="app"> <p>{{a|json}}</p> <p>{}</p> </div> <script> var vm = new Vue({ el: "#app", data: { a: { id: "1", title: "width" }, b: 15 } }); vm.$watch("a", function() { alert('a變化了'); this.b = 100; }, { deep: true }); document.onclick = function() { vm.a.id = "2"; } </script> </body> </html>
ps:下面看下vue中watch用法
對(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>
關(guān)于怎么在vue.js中實(shí)現(xiàn)淺度監(jiān)聽和深度監(jiān)聽問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。