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
相关推荐
椒盐螺丝钉20 小时前
Vue Router应用:组件跳转
前端·javascript·vue.js
顾安r20 小时前
11.20 开源APP
服务器·前端·javascript·python·css3
敲敲了个代码20 小时前
CSS 像素≠物理像素:0.5px 效果的核心密码是什么?
前端·javascript·css·学习·面试
少云清21 小时前
【软件测试】5_基础知识 _CSS
前端·css·tensorflow
倔强青铜三21 小时前
AI编程革命:React + shadcn/ui 将终结前端框架之战
前端·人工智能·ai编程
二川bro21 小时前
第57节:Three.js企业级应用架构
开发语言·javascript·架构
天外飞雨道沧桑21 小时前
前端开发 Cursor MCP 提效工具配置
前端·vscode·ai编程·开发工具·cursor
朱哈哈O_o21 小时前
前端通用包的作用——jquery篇
前端
葡萄城技术团队21 小时前
纯前端驱动:在线 Excel 工具的技术革新与实践方案
前端·excel
芳草萋萋鹦鹉洲哦1 天前
【vue】调用同页面其他组件方法几种新思路
前端·javascript·vue.js