vue-計算屬性和方法區別


一、計算屬性和方法區別

  

  將計算屬性的get函數定義為方法,也可以實現類似的功能。不過計算屬性和方法有本質的區別。計算屬性和方法的區別:

  • 計算屬性是基於他的依賴進行更新的,只有在相關以來發生改變時才能更新變化
  • 計算屬性是有緩存的,只要相關依賴沒有改變,多次訪問計算屬性得到的值是之前緩存存的計算結果,不會多次執行。

 

二、代碼設計

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4   <meta charset="UTF-8">
 5   <title>vue計算屬性</title>
 6   <!--引入vue-->
 7   <script src="../js/vue.js"></script>
 8 
 9 </head>
10 <body>
11   <div id="hello">
12     <!-- 計算屬性 -->
13     <h3>計算屬性返回的num2:{{num2}}</h3>
14     <button onclick="fn1()">定時執行計算屬性</button>
15 
16     <!-- 方法-->
17     <h3>方法返回的num2:{{getNum2()}}</h3>
18     <button onclick="fn2()">定時執行方法</button>
19   </div>
20 
21   <script>
22     let vm = new Vue({
23         //vue掛載目標
24         el:'#hello',
25         //vue屬性
26         data:{  //普通屬性
27           num:9
28         },
29         //vue計算屬性
30         computed:{ //計算屬性
31           num2:function(){ //get函數
32             console.log('計算屬性num2',new Date());
33             return this.num-1;
34           },
35         },
36         //vue方法
37         methods:{
38           getNum2(){
39             console.log('方法getnum2()',new Date());
40             return this.num-1;
41           },
42         },
43       })
44 
45     //自定義普通的函數,不屬於vue,定時輸出計算屬性
46     function fn1(){
47       setInterval(function(){
48         console.log(vm.num2);
49       },1000);
50     }
51 
52     //自定義普通的函數,不屬於vue,定時輸出方法
53     function fn2(){
54       setInterval(function(){
55         console.log(vm.getNum2());
56       },1000);
57     }
58     
59   </script>
60 
61 </body>
62 </html>

 

三、效果展示

 


免責聲明!

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



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