Vue.js 提供了一個方法 watch
,它用於觀察Vue實例上的數據變動。對應一個對象,鍵是觀察表達式,值是對應回調。值也可以是方法名,或者是對象,包含選項。
在實例化時為每個鍵調用 $watch() ;
1 <template> 2 //觀察數據為字符串或數組 3 <input v-model="example0"/> 4 <input v-model="example1"/> 5 /當單觀察數據examples2為對象時,如果鍵值發生變化,為了監聽到數據變化,需要添加deep:true參數 6 <input v-model="example2.inner0"/> 7 </template> 8 <script> 9 export default { 10 data(){ 11 return { 12 example0:"", 13 example1:"", 14 example2:{ 15 inner0:1, 16 innner1:2 17 } 18 } 19 }, 20 watch:{ 21 example0(curVal,oldVal){ 22 console.log(curVal,oldVal); 23 }, 24 example1:'a',//值可以為methods的方法名 25 example2:{ 26 //注意:當觀察的數據為對象或數組時,curVal和oldVal是相等的,因為這兩個形參指向的是同一個數據對象 27 handler(curVal,oldVal){ 28 conosle.log(curVal,oldVal) 29 }, 30 deep:true 31 } 32 }, 33 methods:{ 34 a(curVal,oldVal){ 35 conosle.log(curVal,oldVal) 36 } 37 } 38 } 39 </script>