tft每日頭條

 > 生活

 > vue watch使用場景

vue watch使用場景

生活 更新时间:2024-09-30 01:11:45
普通監聽

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="./asset/vue.js"></script> <title>Vuejs</title> </head> <body> <div id="app"> <div> <input type="text" v-model="a" > </div> </div> </body> <script> var app=new Vue({ el:'#app', data:{ a:"hello" }, methods:{ }, watch:{ a(newVal,oldVal){ console.log(newVal,oldVal); } } }) </script> </html>

vue watch使用場景(Vue入門系列十九watch)1

watch 普通監聽

當我們改變a的值的時候 頁面輸出

vue watch使用場景(Vue入門系列十九watch)2

深度監聽

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="./asset/vue.js"></script> <title>Vuejs</title> </head> <body> <div id="app"> <div> <button @click="changeb">change</button> </div> </div> </body> <script> var app=new Vue({ el:'#app', data:{ b:{ a:'hello' } }, methods:{ changeb(){ this.b.a='hello1222' } }, watch:{ b:{ handler(newVal,oldVal){ console.log('new',newVal.a); console.log('old',oldVal.a); //在變更(不是替換)對象或者數組的時候,舊值将與新值相同,因為的引用指向同一個對象或者數組,Vue不會保存更改之前的副本 }, deep:true //深度監聽 } } }) </script> </html>

vue watch使用場景(Vue入門系列十九watch)3

watch 深度監聽

用以上的寫法可以對對象或者數組進行深度監聽

但是 頁面輸出的時候發現新值和舊值一樣,官方給的解釋如下:

在變更(不是替換)對象或者數組的時候,舊值将與新值相同,因為的引用指向同一個對象或者數組,Vue不會保存更改之前的副本

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved