Vue学习系列 -- 计算属性

Posted 躬匠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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学习系列 -- 常见事件/指令学习

以上是关于Vue学习系列 -- 计算属性的主要内容,如果未能解决你的问题,请参考以下文章

VUE核心学习笔记

VUE核心学习笔记

Vue中的计算属性与监视属性

Vue 框架学习之计算属性监视属性

Vue知识点:计算属性

Vue.js 系列 - 计算属性方法和监听器