vue3响应式代理基础

reactive

reactive返回的是一个对象的响应式代理,返回的是一个深层响应式对象,也可以使用shallowReactive()创建
缺点:只能返回对象的响应时代理

<template>
    <div>{{ stu.name }} </div>
</template>

<script setup>
  import {reactive} from 'vue'
	const stu = reactive({
	    name:'孙悟空'
	})

ref

ref() 接收任意值,并返回它的响应式代理
ref() 生成相应式代理时,他是将值包装为了一个对象 —》{value:0}
访问ref对象时,必须通过对象 .value来访问其中的值
在模板中,ref对象会被自动解包

<template>
    <div>{{ count }} sferf </div>
</template>

<script setup>
import {ref} from 'vue'
const count =  ref(0)
console.log(count.value)

</script>

$ref

$refref() 的语法糖
可以不用.value解包,$ 是一个实验性,在项目中最好不是使用,要使用要在vite插件中做一些配置 reactivityTransform:true
vite.config.js

 reactivityTransform:true

在这里插入图片描述
ref 不是顶层对象不会自动解包

<template>
    <!-- <div>{{ stu.name }} </div> -->
    <div>
       <p>{{ obj.name }}</p>
       <p>{{ obj.age+1 }}</p>
       
       <p>{{ obj2.name }}</p>    <!--不会自动解包,要想正常使用 要 obj2.name.value和bj2.age.value->
       <p>{{ obj2.age+1 }}</p>
       
        <p>{{ name }}</p>  
       <p>{{ age+1 }}</p>
    </div>
</template>

<script setup>
import {ref} from 'vue'

const obj =ref({name:'莉莉',age:21})
const obj2 = {
     name:ref('莉莉'),
     age:ref(21)
}
const {name,age} = obj2   //解构赋值   

</script>

渲染结果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值