29.Vue计算属性

什么是计算属性:

在模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护,所以,对于任何复杂逻辑,你都应当使用计算属性。

计算属性和方法区别:

尽管使用方法也能实现计算属性相同效果,但最明显的区别在于:计算属性是基于它们的依赖进行缓存的,只有相关依赖发生改变时它们才会重新求值。

案例:

<template>
  <div>
      {{messageCmp}}  <br/>
      <button @click="mclick">点击</button> <br/> <br/>
      {{message2Cmp}}
  </div>
</template>
<script>
export default {
  data(){
    return {
        message: '123,456,789'
    }
  },
  // 计算属性
  computed: {
    messageCmp(){
      console.log('messageCmp 被执行!');
      return this.message.split(',').reverse().join(','); //反转message值
    },
    // 提供 get set方法
    message2Cmp: {
      get(){
        console.log('message2Cmp get被执行!');
        return this.message2 += ' hello';
      },
      set(val){
         console.log('message2Cmp set被执行!');
         this.message = val;
      }
    }
  },
  methods: {
    mclick(){
       this.message = 'aa,bb,cc';
       this.message2Cmp = 'hello message2';
      console.log(this.message2Cmp );
    }
  }
  mounted(){}
}
</script>

一般情况下,计算属性不会使用到set,直接默认get ( messageCmp )方式返回处理后的值。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,207评论 0 13
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,145评论 1 32
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • fs119阅读 219评论 0 0
  • 你好,我是玉石玩家张丽云,每天写一篇原创文章分享我的经验和观察,希望能给你一些启发和帮助。这是第十五篇原创文章。 ...
    云湛蓝阅读 852评论 0 0