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
相关推荐
OEC小胖胖14 小时前
02|从 `createRoot` 到 `scheduleUpdateOnFiber`:一次更新如何进入 React 引擎
前端·javascript·react.js·前端框架
林太白14 小时前
ofd文件
前端·后端
闲云一鹤14 小时前
Git 焚决!一个绝招助你找回丢失的代码文件!
前端·git
小宇的天下14 小时前
Calibre 3Dstack--每日一个命令day 6 [process和export layout](3-6)
java·前端·数据库
冴羽15 小时前
2025 年最火的前端项目出炉,No.1 易主!
前端·javascript·node.js
wordbaby15 小时前
Flexbox 布局中的滚动失效问题:为什么需要 `min-h-0`?
前端·css
黛色正浓15 小时前
leetCode-热题100-滑动窗口合集(JavaScript)
javascript·算法·leetcode
asdfg125896315 小时前
小程序开发中的JS和Go的对比及用途
开发语言·javascript·golang
demo007x15 小时前
在国内也能使用 Claude cli给自己提效,附实操方法
前端·后端·程序员
jayaccc15 小时前
Webpack配置详解与实战指南
前端·webpack·node.js