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
相关推荐
Java开发追求者14 分钟前
npm镜像源证书过期的问题解决
前端·npm·node.js·npm镜像源证书过期的问题解决
宝子向前冲22 分钟前
React中九大常用Hooks总结
前端·javascript·react.js
小白小白从不日白37 分钟前
react 基础语法
前端·react.js
岸边的风38 分钟前
前端Excel热成像数据展示及插值算法
前端·算法·excel
不良人龍木木2 小时前
sqlalchemy FastAPI 前端实现数据库增删改查
前端·数据库·fastapi
c1tenj22 小时前
Jedis,SpringDataRedis
前端
Code成立2 小时前
HTML5中IndexedDB前端本地数据库
前端·数据库·html5·indexeddb
Code成立3 小时前
最新HTML5中的文件详解
前端·html·html5
橙子家3 小时前
前端项目通过 Nginx 发布至 Linux,并通过 rewrite 配置访问后端接口
前端