教育集团网站建设的目的,磁力帝,linux怎么做网站,做的好看的外国网站基础示例
模板中的表达式虽然方便#xff0c;但也只能用来做简单的操作。如果在模板中写太多逻辑#xff0c;会让模板变得臃肿#xff0c;难以维护。比如说#xff0c;我们有这样一个包含嵌套数组的对象#xff1a;
const author reactive({name: John Doe,books: [V…基础示例
模板中的表达式虽然方便但也只能用来做简单的操作。如果在模板中写太多逻辑会让模板变得臃肿难以维护。比如说我们有这样一个包含嵌套数组的对象
const author reactive({name: John Doe,books: [Vue 2 - Advanced Guide,Vue 3 - Basic Guide,Vue 4 - The Mystery]
})
我们想根据 author 是否已有一些书籍来展示不同的信息
pHas published books:/p
span{{ author.books.length 0 ? Yes : No }}/span
这里的模板看起来有些复杂。我们必须认真看好一会儿才能明白它的计算依赖于 author.books。更重要的是如果在模板中需要不止一次这样的计算我们可不想将这样的代码在模板里重复好多遍。
因此我们推荐使用计算属性来描述依赖响应式状态的复杂逻辑。这是重构后的示例
script setup
import { reactive, computed } from vueconst 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
})
/scripttemplatepHas published books:/pspan{{ publishedBooksMessage }}/span
/template
我们在这里定义了一个计算属性 publishedBooksMessage。computed() 方法期望接收一个 getter 函数返回值为一个计算属性 ref。和其他一般的 ref 类似你可以通过 publishedBooksMessage.value 访问计算结果。计算属性 ref 也会在模板中自动解包因此在模板表达式中引用时无需添加 .value。
Vue 的计算属性会自动追踪响应式依赖。它会检测到 publishedBooksMessage 依赖于 author.books所以当 author.books 改变时任何依赖于 publishedBooksMessage 的绑定都会同时更新。