Vue 3中的toRefs函数:将响应式对象转换为包含所有属性的响应式引用对象

328 阅读1分钟

在Vue 3中,toRefs是一个函数,用于将一个响应式对象转换为一个包含所有属性的新对象,其中每个属性都是一个响应式引用。这允许您将嵌套的响应式对象作为单独的响应式引用访问,并在模板中使用它们。

以下是一个示例:

import { reactive, toRefs } from 'vue'

const user = reactive({
  name: 'John',
  age: 30
})

const userRefs = toRefs(user)

console.log(userRefs.name.value) // John
console.log(userRefs.age.value) // 30

userRefs.name.value = 'Mike'

console.log(user.name) // Mike

在上面的示例中,我们首先创建了一个响应式对象user,其中包含nameage属性。然后,我们使用toRefs函数将整个user对象转换为一个新的包含响应式引用的对象userRefs。这允许我们通过userRefs.name.valueuserRefs.age.value访问这些属性,并将它们用作响应式数据。最后,我们将userRefs.name.value更改为'Mike',并验证user.name是否已更新为'Mike'

需要注意的是,toRefs函数返回一个新的对象,并且该对象的属性都是响应式引用。这意味着您需要使用.value访问属性的值。此外,如果您尝试将非响应式对象传递给toRefs函数,则函数将返回一个空对象。