1 <div id="app">
2 <input type="text" v-model.number="a">
3 <input type="text" v-model.number="b">
4 <button @click="handleAdd()">計算</button>
5 <p>結果爲:{{sum}}</p> <!-- 執行methods中的handleAdd()方法後返回的結果 -->
6 <p>computed結果:{{count}}</p> <!-- 執行computed中的count()方法後返回的結果 -->
7 </div>
1 new Vue({ 2 el:"#app", 3 data:{ 4 a:"", 5 b:"", 6 sum:"" 7 }, 8 methods:{ 9 handleAdd(){ 10 this.sum = this.a+this.b; //只有點擊事件觸發時纔會改變 11 } 12 }, 13 computed:{ 14 count(){ 15 return this.a+this.b; //實時監聽,只要data中數據發生改變返回的結果就會改變 16 } 17 } 18 })
1 <div id="app"> 2 <input type="text" v-model.number="a"> 3 <input type="text" v-model.number="b"> 4 <p>結果:{{sum}}</p> 5 <hr> 6 <input type="text" v-model="obj.name"> 7 <input type="text" v-model="obj.age"> 8 </div>
1 new Vue({ 2 el:"#app", 3 data:{ 4 a:"", 5 b:"", 6 sum:"", 7 obj:{ 8 name:"pinpinkc", 9 age:18 10 } 11 }, 12 watch:{ 13 a(newVal,oldVal){ 14 if(newVal != oldVal){ 15 this.sum = newVal+this.b; 16 } 17 console.log("a發生了改變",newVal,oldVal) 18 }, 19 b(newVal,oldVal){ 20 this.sum = newVal+this.a; 21 console.log("b發生了改變",newVal,oldVal) 22 }, 23 obj:{ 24 handler(newVal){ 25 console.log("obj發生了改變",newVal) 26 }, 27 deep:true 28 } 29 } 30 })