计算属性

computed和methods的区别

  • 计算属性有缓存,数据没变就直接用原先的计算结果,不用再调用
  • 方法没缓存,用一次掉一次

vue2和vue3 computed的写法区别

  • Vue3里计算属性变成了一种方法,用箭头函数来写
1
2
3
let fullName = computed(()=>{
return person.firstName + '-' + person.lastName
})
  • 需要写set()让计算属性的值可被直接修改,能直接改fullname.value,
    不然是只读的,只能改firstname.value和lastname.value来重新调用计算属性的方法重新计算fullname
1
2
3
4
5
6
7
8
9
10
let fullName = computed({
get(){
return person.firstName + '-' + person.lastName
},
set(value){
const nameArr = value.split('-')
person.firstName = nameArr[0]
person.lastName = nameArr[1]
}
})