Skip to content

Vue3中toRef和toRefs的区别

  • toRef: 基于响应式对象上的一个属性,创建一个对应的 ref。

  • toRefs: 将一个响应式对象转换为一个普通对象,这个普通对象的每个属性都是指向源对象相应属性的 ref。每个ref都是toRef创建的

js
const data = reactive({
    count: 3,
    age: 18
})
const count = toRef(data, 'count') // data.count === count.value
console.log(count.value === data.count) // true

const name = toRef('squid-xu') // 等价于 ref('squid-xu')

const { count: count2, age } = toRefs(data)
console.log(count2.value === data.count) // true
console.log(age.value === data.age) // true
  • 当我们使用reactive声明了一个对象,在模板中想直接访问属性时,toRefs是个很好的选择
js

<script>
export default {
  setup() {
    const data = reactive({
      count: 3,
      age: 18
    })
    return {
      ...toRefs(data)
    }
  }
    
}
</script>

Released under the MIT License.