Vue学习系列 -- 计算属性

不知道在上一节指令章节的学习中,大家有没有注意到一个细节:

Vue.js模板内的表达式只能进行简单的计算,当其过长或者逻辑复杂时会变得难以维护,遇到这个问题如何处理呢?答案是计算属性。

在计算属性里可以完成各种复杂的逻辑,包括运算、函数调用等,最终只要返回一个结果即可。

使用计算属性有以下两点好处:

  • 计算属性相当于对数据操作的封装,用户只需要知道如何使用就可以了,无需关注逻辑细节;
  • 解耦视图与业务的逻辑,也便于代码维护

通过前面几个章节的学习,我们已经知道了了el、data、methods三个属性,而计算属性的关键字是computed。

废话少说,下面我们一块来学习一下。

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <title>Learning Vue.js</title>
</head>

<body>
<div id="app1">
 <span style="color:red"> 总分数:{{scores}}</span></br>
 <span style="color:red"> 平均分数:{{averagescore}}</span></br>
</div>
</body>

<!--这里是以CDN引入的方式加载的vue.js-->
<script type="text/javascript" src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
<script>
 new Vue({
   el : "#app1", //指定绑定的DOM元素
   data : {  //设置data属性值
        grade : [
            {  
                course : "english",
                score : 90
            },
            {  
                course : "chinese",
                score : 97
            },
            {  
                course : "math",
                score : 90
            },
        ]
   },
   computed : { //设置方法属性
       scores : function() {
           var scores = 0.0;
            for (var i=0; i < this.grade.length; i ++) {
                scores += this.grade[i].score;
            }
            return scores;
        },
        averagescore : function() {
             var average = 0.0;
             average = this.scores / this.grade.length;
             return average;
        }
   }

 })

</script>
</html>

上面的代码里使用了两个计算属性:总分数、平均值,代码很简单,就无需在解释了。

最后给出我自己的建议:对于复杂的逻辑处理,如函数调用、运算最好都放到计算属性里去。

Vue学习系列

Vue.js学习系列 -- 基础知识了解

Vue学习系列 -- vue生成周期了解

Vue学习系列 -- 常见事件/指令学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值