计算属性的组成

51 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第16天,点击查看活动详情

计算属性实际上由get函数和set函数,分别用来获取和设置计算属性的值。定义计算属性只有一个方法,实际上是get函数,即默认写的函数就是get函数,通过get函数可以获取到计算属性的值,不过在需要时也可以提供一个set函数。当然,改变了计算属性的值,set函数就会被执行,也就是通过计算属性的set方法可以检测到计算属性改变。

<div id="app">
  {{ reversedMessage }}
  <input v-model="msg">
</div>

<script>
var vm = new Vue({
  el: '#app',
  data: {
    message: 'hello vue'
  },
  computed: {
    // 计算属性的 getter
    reversedMessage: function () {
      // `this` 指向 vm 实例
      return this.message.split('').reverse().join('')
    }
  }

ReverseMsg:{
get:function(){
  return this.msg.split("").reverse().join("")
},
set: function(newvalue){
//方法名固定为set,参数newvalue为改变后的计算属性的值
comsole.log("计算属性值被改变了");
console.log("改变的后的值为:"+newvalue)

}
}
})
console.log(vm.ReverseMsg);  //当读取ReverseMsg的值时即会调用get方法
vm.ReverseMsg="静Yu课堂"  //当为ReverseMsg设置值时就会调用set方法
</script>

注意点:在set方法里面不要去直接改变计算属性的值,否则会导致死循环。要想改变计算属性的值,一般是通过改变它的依赖值。

  1. 基本用法

计算属性也是用来存储数据,而且具有以下几个特点:

(1)数据可以进行逻辑处理操作

(2)对计算属性中的数据进行监视

2.计算属性 vs 方法

将计算属性的get函数定义为一个方法也可以实现类似的功能

区别:

(1)计算属性是基于它的依赖进行更新的,只有在相关依赖发生改变时才能更新变化

(2)计算属性是缓存的,只要相关依赖没有改变,多次访问计算属性得到的值是之前缓存的计算结果,不会多次执行

  1. get和set

计算属性由两部分组成:get和set,分别用来获取计算属性和设置计算属性

默认情况下只有get获取属性,如果需要set来设置计算属性,要自己手动添加