vue里的watch 和 computed 監聽的不同


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 })

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM