vue3(ref、unref、toRef、toRefs、isRef、toRaw)

ref()
ref接受一个内部值并返回一个响应式且可变的 ref 对象。ref 对象仅有一个 .value属性,指向该内部值。

const count = ref(0)
console.log(count.value) // 0

unref :
如果参数是一个ref,则返回内部值,否则返回参数本身。

let msgref = ref('你好')
console.log(unref(msgref)) // 你好  //不用msgref.value了
let  msg = '你好'
console.log(unref(msg)) // 你好

toRef、toRefs
可以用来为源响应式对象上的 property 新创建一个 ref。然后可以将 ref 传递出去,从而保持对其源 property 的响应式连接。

props: {
  params: {
     type: Object,
     default: () => {
       return {};
     },
   },
}

let { params } = toRefs(props); //props解构(将props变回响应式)
const searchInfo = ref(params)
相当于
// const searchInfo = toRef(props, 'params')

toRef: 复制 reactive 里的单个属性并转成 ref
toRefs: 复制 reactive 里的所有属性并转成 ref

1.ref、toRef、toRefs 都可以将某个对象中的属性变成响应式数据。
2.ref的本质是拷贝,修改响应式数据,不会影响到原始数据,视图会更新。
3.toRef、toRefs的本质是引用,修改响应式数据,会影响到原始数据,视图会更新。

isRef
检查值是否为一个 ref 对象。

let info = reactive({ user: 'John Doe' })
const state = ref({foo: 1,bar: 2})
console.log(isRef(state)) // true
console.log(isRef(info)) // false

toRaw
从Reactive或Ref中得到原始数据,做一些不想被监听的事情(提升性能),数据发生变化,不会更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值