每个计算属性都包含一个getter和一个setter
computed: {
fullName: {
set: function (newValue){
console.log(newValue);
const names = newValue.split(' ');
this.firstName = names[0];
this.lastName = names[1];
},
get: function (){
return this.firstName + ' ' + this.lastName;
}
}
}
计算属性一般是没有set
方法的,他是只读属性的,即
computed: {
fullName: {
get: function (){
return this.firstName + ' ' + this.lastName;
}
}
},
再化简,即,
computed: {
fullName: function (){
return this.firstName + ' ' + this.lastName;
}
}
用这个计算属性的时候,不需要加括号
<div id="app">
{{fullName}}
</div>
computed
内有异步操作时无效,无法监听数据的变化data
中声明过或者父组件传递的props
中的数据通过计算得到的值computed
computed
属性属性值是函数,那么默认会走get
方法;函数的返回值就是属性的属性值;在computed
中的,属性都有一个get
和一个set
方法,当数据变化时,调用set
方法。data
中声明过或者父组件传递过来的props
中的数据,当数据变化时,触发其他操作,函数有两个参数:immediate
、deep
computed
是响应式的,methods
并非响应式;comput
定义的成员像属性一样访问,methods
定义的成员必须以函数形式调用;computed
是带缓存的,只有其引用的响应式属性发生改变时才会重新计算,而 methods
里的函数在每次调用时都要执行;computed
中的成员可以只定义一个函数作为只读属性,也可以定义 get/set
变成可读写属性,这点是 methods
中的成员做不到的;