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