vue中的computed属性有什么用?
computed属性有两个特点:
- 响应式:当依赖的数据发生变化时,computed属性会自动更新。
- 缓存:只有依赖的数据发生变化时,computed属性才会重新计算。
computed属性的用途
一、缓存计算结果,避免重复计算。
比如缓存日期格式化的结果:
const date = ref(new Date())
const formattedDate = computed(() => {
return date.value.toLocaleDateString()
})
这样一来,只有date
发生变化时,formattedDate
才会重新计算。类似于React中的useMemo
。
二、多个响应式数据的计算
const a = ref(1)
const b = ref(2)
const sum = computed(() => {
return a.value + b.value
})
这样一来,只要a
或b
发生变化,sum
就会自动更新。
如果你不用computed(),而是直接采用sum = a + b,那么只会在第一次渲染时计算一次,之后不会再更新。