Vue之计算属性
计算属性:computed
1.简单的计算
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <style> </style> <script src="vue.js"></script> <script><pre name="code" class="html"><!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <style> </style> <script src="vue.js"></script> <script> </script> </head> <body> <div id="box"> a => {{a}} <br> b => {{b}} </div> <script> var vm=new Vue({ el:'#box', data:{ a:1 }, computed:{ b:function(){ //业务逻辑代码 return this.a+1; } } }); document.onclick=function(){ vm.a=101; }; </script> </body> </html></pre><br> <script> var vm=new Vue({ el:'#box', data:{ a:1 }, computed:{ b:function(){ //业务逻辑代码 return 2; } } }); console.log(vm.a); </script></body></html> <pre></pre> <p></p> <pre></pre> 效果: <p></p> <p></p> <p><img src="//img-blog.csdn.net/20170924152703113?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hhb2ZlaV9saWFuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""></p> <p>2.点击事件完成计算</p> <p></p> <pre name="code" class="html"><!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <style> </style> <script src="vue.js"></script> <script> </script> </head> <body> <div id="box"> a => {{a}} <br> b => {{b}} </div> <script> var vm=new Vue({ el:'#box', data:{ a:1 }, computed:{ b:function(){ //业务逻辑代码 return this.a+1; } } }); document.onclick=function(){ vm.a=101; }; </script> </body> </html></pre><br> 初始状态: <p></p> <p><img src="//img-blog.csdn.net/20170924152954459?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hhb2ZlaV9saWFuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""><br> </p> <p>点击完</p> <p><img src="//img-blog.csdn.net/20170924153025254?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hhb2ZlaV9saWFuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""><br> </p> <p>3.计算属性默认有set和get属性</p> <p></p> <pre name="code" class="html"><!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <style> </style> <script src="vue.js"></script> <script> </script> </head> <body> <div id="box"> a => {{a}} <br> b => {{b}} </div> <script> var vm=new Vue({ el:'#box', data:{ a:1 }, computed:{ b:{ get:function(){ return this.a+2; }, set:function(val){ this.a=val; } } } }); document.onclick=function(){ vm.b=10; }; </script> </body> </html> </pre><br> 初始: <p></p> <p><img src="//img-blog.csdn.net/20170924153223750?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hhb2ZlaV9saWFuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""><br> </p> <p>点击完</p> <p><img src="//img-blog.csdn.net/20170924153252960?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hhb2ZlaV9saWFuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""><br> </p>