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
相关推荐
bug_kada3 分钟前
前端后端3步联调:Cookie认证实战,让登录功能完美上线!
前端·javascript
stringwu4 分钟前
Flutter开发者必备:状态管理Bloc的实用详解
前端·flutter
青晚舟4 分钟前
作为前端你必须要会的CICD
前端·ci/cd
hj5914_前端新手5 分钟前
深入分析 —— JavaScript 深拷贝
前端·javascript
中微子5 分钟前
虚拟列表完全指南:从零到一手写实现
前端
jqq6665 分钟前
解析ElementPlus打包源码(二、buildFullBundle)
前端·javascript·vue.js
YaeZed14 分钟前
TypeScript6(class类)
前端·typescript
织_网15 分钟前
UniApp 页面通讯方案全解析:从 API 到状态管理的最佳实践
前端·javascript·uni-app
emojiwoo1 小时前
前端视觉交互设计全解析:从悬停高亮到多维交互体系(含代码 + 图表)
前端·交互
xxy.c1 小时前
嵌入式解谜日志—多路I/O复用
linux·运维·c语言·开发语言·前端