Vue3-shallowRef 和 shallowReactive函数(浅层次的响应式)
shallowRef函数
- 功能:只给基本数据类型添加响应式。如果是对象,则不会支持响应式,层成也不会创建Proxy对象。
- ref和shallowRef在基本数据类型上是没有区别的,shallowRef函数主要作用于不进行修改对象中的属性。
<template>
<h2>计数器1:{{data.counter1}}</h2>
<button @click="data.counter1++">计数器1加1</button>
</template>
<script setup>
import { shallowRef } from 'vue'
let data = shallowRef({
counter1 : 1
})
console.log(data);
</script>
shallowReactive函数
- 功能:shallowReactive 对象中只有第一层支持响应式,之后的都不支持响应式。
<template>
<h2>计数器1:{{data.counter1}}</h2>
<button @click="data.counter1++">计数器1加1</button>
<hr>
<h2>计数器2:{{data.a.counter2}}</h2>
<button @click="data.a.counter2++">计数器2加1</button>
</template>
<script setup>
import { shallowReactive } from 'vue'
let data = shallowReactive({
counter1 : 1,
a : {
counter2 : 100
}
})
</script>
counter2 : 100
}
})
</script>