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="http://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="http://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="http://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="http://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="http://img.blog.csdn.net/20170924153252960?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hhb2ZlaV9saWFuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""><br>  
</p>  
原文地址:https://www.cnblogs.com/chaofei/p/7709147.html