携手创作,共同成长!这是我参与「掘金日新计划 · 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)数据可以进行逻辑处理操作
(2)对计算属性中的数据进行监视
2.计算属性 vs 方法
将计算属性的get函数定义为一个方法也可以实现类似的功能
区别:
(1)计算属性是基于它的依赖进行更新的,只有在相关依赖发生改变时才能更新变化
(2)计算属性是缓存的,只要相关依赖没有改变,多次访问计算属性得到的值是之前缓存的计算结果,不会多次执行
- get和set
计算属性由两部分组成:get和set,分别用来获取计算属性和设置计算属性
默认情况下只有get获取属性,如果需要set来设置计算属性,要自己手动添加