computed是vue用来解决标签语法有一些计算步骤的属性
1.普通用法
只用到getter属性,只有一个普通的返回值
var vm = new Vue({
el: '#example',
data: {
message: 'Hello'
},
computed: {
// 计算属性的 getter
reversedMessage: function () {
// `this` 指向 vm 实例
return this.message.split('').reverse().join('')
}
}
})
2.computed默认是有getter,还有一个setter
computed: {
fullName: {
// getter
get: function () {
return this.firstName + ' ' + this.lastName
},
// setter
set: function (newValue) {
var names = newValue.split(' ')
this.firstName = names[0]
this.lastName = names[names.length - 1]
}
}
}
这个在实际中有个很大的用处
就是父子组件传值的时候,父组件修改子组件的值的时候很基础,但是子组件想要直接修改父组件的值,就会报错
那么这里的计算属性就很有用处了
3.computed也可以是一个函数
<div>aaa:¥{{ getAllMoney('1')}}</div>
data里面定义一个aa
computed: {
getAllMoney() {
return (item) => {
var moneyAll = 0
this.aa = item + 1
return moneyAll
}
}
}
只是一个小例子,在日常工作中,如果遇到父子组件传值或者需要有参数传到computed就可以使用
当然也可以不传参数,直接在函数中使用