Vue3-readonly(深只读) 与 shallowReadonly(浅只读)

Vue3-readonly(深只读) 与 shallowReadonly(浅只读)

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

Vue3-readonly(深只读) 与 shallowReadonly(浅只读)_第1张图片

Vue3-readonly(深只读) 与 shallowReadonly(浅只读)_第2张图片

// App.vue
<template>
    <h2>计数器1{{data.counter1}}</h2>
    <button @click="data.counter1++">计数器11</button>
    <hr>
    <h2>计数器2{{data.a.counter2}}</h2>
    <button @click="data.a.counter2++">计数器21</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>

你可能感兴趣的:(Vue,前端,javascript,vue,前端框架)