vue3中ref自动解包

1.模板中使用 ref 类型的数据,会自动解包,注意需要是顶级的ref

vue3 复制代码
<template>
<!-- 自动解包-->
  <div>{{ name }}</div>
</template>

<script setup>
import { ref} from 'vue'
const name = ref('hello')
</script>

下面的 ref 不会自动解包

vue3 复制代码
<template>
  <div>
    {{ num }} -- {{ obj.id }}
    <br>
   num+1-----------{{ num+1 }} 
   <br>
   obj.id+1-----------{{ obj.id + 1 }} 
  </div>
</template>

<script setup>
import { ref } from 'vue'
const num = ref(0);
const obj = {
  id: ref(1)
}
</script>
复制代码
### 2.ref作为reactvie对象属性,自动解包
```vue3
<template>
  <div>{{obj.name}}</div>
</template>

<script setup>
import { ref, reactive } from 'vue'
const name = ref('hello')
const obj= reactive({
  name
})
console.log(obj.name) // 自动解包hello
</script>

3.ref 作为 shallowReactive 对象的属性,不会自动解包

vue3 复制代码
<template>
<!-- 此处会显示处"hello" ,双引号也是会有的 -->
  <div>{{obj.name}}</div> 
</template>

<script setup>
import { ref, shallowReactive } from 'vue'
const name = ref('hello')
const obj= shallowReactive ({
  name
})
console.log(obj.name) // 不会自动解包,此处会打印出RefImpl 
</script>

4.ref 数据作为 reactvie 数组或者集合的一个元素,不会自动解包

vue3 复制代码
const people= reactive([ref('zhangsan')])
console.log(people[0]) ; // 此处是RefImpl
console.log(people[0].value) ;//zhangsan
相关推荐
We་ct25 分钟前
React 性能优化精讲
前端·javascript·react.js·性能优化·前端框架·html·浏览器
云动课堂35 分钟前
【运维实战】Nginx 高性能Web服务 · 一键自动化部署方案 (适配银河麒麟 V10 / openEuler / CentOS 7/8)
运维·前端·nginx
渣渣盟1 小时前
Spark 性能调优实战:从开发到生产落地
javascript·ajax·spark
大前端helloworld2 小时前
AI全自动实现Flutter蓝牙自动连接
前端
GISer_Jing2 小时前
从入门到落地:前端开发者的AI Agent全栈学习路线
前端·人工智能·ai编程
计算机安禾2 小时前
【Linux从入门到精通】第47篇:SystemTap与eBPF——Linux内核观测的显微镜
java·linux·前端
技术钱3 小时前
OutputParser输出解析器
linux·服务器·前端·python
专科3年的修炼3 小时前
uni-app移动应用开发第四章
开发语言·javascript·uni-app
可达鸭小栈4 小时前
易语言实现CSS像素文字生成器:无需字体文件渲染汉字
前端·css
fox_lht4 小时前
DBeaver的LightGrid 类所有函数详细分析
前端