vue3中ref、toRef、toRefs的区别

  • ref—>原有数据的复制,修改数据不会影响原数据UI界面会更新
  • toRef—>原有数据的引用,修改数据影响原数据UI界面不更新
<template>
  <div>{{ name }}{{ age }}</div>
  <button @click="change">change</button>
</template>

<script>
import { toRefs, toRef } from 'vue'
export default {
  name: 'App',
  setup() {
    const obj = {
      name: 'zs',
      age: '22',
    }
    const name = toRef(obj, 'name')
    const age = toRef(obj, 'age')
    // 上述两行代码等价于下方注释代码,使用toRefs需要通过state.name.value进行值的修改
    // const state = toRefs(obj)
    function change() {
      name.value='xmz'
      age.value='65'
      console.log(obj)
    }
    return {
      name,
      age,
      change,
    }
  },
}
</script>
  • toRefs可以看作toRef的语法糖,toRefs会遍历传入对象的属性
const name=toRef(obj,'name')
const age=toRef(obj,'age')
通过name.value进行值的修改

等价于
const state=toRefs(obj)
通过state.name.value进行值的修改
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值