1.computed里是偏向於通過監聽data里的值變化后,經過運算返回一個新的計算結果,
所以k不能與data里的k重名,並且必須有return,
能夠緩存,依賴的值不變化不會進行重復計算;
而watch是監聽data里的值的變化,k是data里的k,不能自己單獨定義k
watch里經常放異步函數。
不能緩存。
watch顧名思義,用於監聽數據變化,其中可以監聽的數據來源有三部分:props、data、computed內的數據;watch提供兩個參數(newValue,oldValue),第一個參數是新值,第二個參數保存舊值;
computed用於處理復雜的邏輯運算,主要和methods儲存方法來進行區分;methods儲存方法,,computed儲存需要處理的數據值;methods每次都會調用,computed有緩存機制,只有改變時才執行,性能更佳;
1 <div id="app"> 2 <input type="text" v-on:input='input'> 3 <ul> 4 <li v-for='item in result'>{{item}}</li> 5 </ul> 6 </div> 7 <script src="vue.js"></script> 8 <script> 9 var vm = new Vue({ 10 el:'#app', 11 data:{ 12 flag: false, 13 result:[], 14 15 }, 16 methods:{ 17 input:function(){ 18 this.flag = true 19 } 20 }, 21 watch:{ 22 flag:function(newValue,old){//兩個參數表示變化之前的值和變化之后的值
setTimeout(()=>{
24 this.result = [1,2,3,4,5]
25 console.log(old,newValue)
26 },500)
27 }
28 }
29 })