记录:
以前没有注意“属性”二字,今天再看一次,突然明白了一点;
如下面定义的一个vue对象:
var vm =new Vue({
el:'#example',
data: {
message:'Hello'
},
computed: {
// 计算属性的 getter
reversedMessage: function(){
// `this` 指向 vm 实例
returnthis.message.split('').reverse().join('')
}
}
})
直接就能打印:
console.log(vm.message)
console.log(vm.reversedMessage)
reversedMessage,就是一个计算属性,就像data里面的message一样,当一个变量使用,只是这个计算属性有其特质:有缓存,与其相关的变量没有改变时,直接返回上一次计算结果;能自动响应结果,与其相关的变量有改变时,重新计算结果返回;
计算属性有两个函数:getter、setter;声明计算属性的时候,提供一个自定义的函数作为属性:vm.reversedMessage 的getter函数;
这与methods里面定义的方法是不一样的,作用、含义都不一样:
methods: {
reversedMessage:function(){
returnthis.message.split('').reverse().join('')
}
}
这样是定义了一个方法:reversedMessage,使用的时候需要调用:reversedMessage();每次调动此方法就返回结果,没有缓存,这是一个方法,不是属性,而计算属性里面的reversedMessage是一个属性,直接vm.reversedMessage 使用;
网友评论