2.4 计算属性
2.4.1 基本示例
计算属性值会基于其响应式依赖被缓存
vue
<script setup>
import { reactive, computed } from 'vue'
const author = reactive({
name: 'John Doe',
books: [
'Vue 2 - Advanced Guide',
'Vue 3 - Basic Guide',
'Vue 4 - The Mystery'
]
})
// 一个计算属性 ref
const publishedBooksMessage = computed(() => {
return author.books.length > 0 ? 'Yes' : 'No'
})
</script>
<template>
<p>Has published books:</p>
<span>{{ publishedBooksMessage }}</span>
</template>
2.4.2 最佳实践
- Getter 不应有副作用: 不要改变其他状态、在 getter 中做异步请求或者更改 DOM!
- 避免直接修改计算属性值