Vue3-readonly(深只读) 与 shallowReadonly(浅只读)
- readonly(深只读):具有响应式对象中所有的属性,其所有值都是只读且不可修改的。
- shallowReadonly(浅只读):具有响应式对象的第一层属性值是只读且不可修改的,其他属性值不设为只读。


<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 { reactive, readonly, shallowReadonly } from 'vue'
let data = reactive({
counter1 : 1,
a : {
counter2 : 100
}
})
data = readonly(data)
data = shallowReadonly(data)
</script>