vue.js - ref、toRef 和 toRefs 之间有什么区别

标签 vue.js vue-component vuejs3 vue-composition-api vue-reactivity

我刚刚开始使用 Vue 3 和 Composition API。
我想知道 reftoReftoRefs 之间有什么区别?

最佳答案

Vue 3 refref 是 Vue 3 中的一种 react 机制。 想法是将非对象包装在 reactive 对象中:

Takes an inner value and returns a reactive and mutable ref object. The ref object has a single property .value that points to the inner value.


reactive对于自然对象,不需要 ref 包装,因为它已经是一个对象。它只需要 reactive 功能(ref 也有):
const state = reactive({
  foo: 1,
  bar: 2
})
但是这个对象的属性不是 refs 自然。这意味着如果您要复制一个属性,它将失去与父对象的 react 性/连接。这就是 toRef 有用的地方。toRef toRef 将单个 reactive 对象属性转换为保持与父对象连接的 ref:
const state = reactive({
  foo: 1,
  bar: 2
})

const fooRef = toRef(state, 'foo')
/*
fooRef: Ref<number>,
*/
toRefs toRefs 将所有属性转换为具有 refs 属性的普通对象:
const state = reactive({
  foo: 1,
  bar: 2
})

const stateAsRefs = toRefs(state)
/*
{
  foo: Ref<number>,
  bar: Ref<number>
}
*/

关于vue.js - ref、toRef 和 toRefs 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66585688/

相关文章:

vue.js - vue 和 vuex getter vs 通过 props 传递状态

vue.js - 使用 vue.js 在不刷新页面的情况下更改后更新数据

javascript - 在 Vue 中处理 <picture> srcset 属性的正确方法

vuejs3 - Vue 3 中的高级MarkerView

vue.js - 单击带有空选项的 vue select 时如何处理选项 "Sorry, no matching options"挂起?

javascript - VueJs 模板。如何加载外部模板

css - 在 VueJS 中导入带有字体的 CSS 文件

javascript - 在组件内嵌套 Vue 组件时出现问题

vue.js - 如何使用带有 Composition API 的 Okta auth 设置 Vue 应用程序

javascript - 无法缩放或旋转 fabricJs 图像、矩形、椭圆