Vue readonly()简介

readonly() 

说明: 接受一个对象 (不论是响应式还是普通的) 或是一个 ref,返回一个原值的只读代理

细节:它是深层的。即不管原值是多少子节点、孙节点,都是只读。

用途:保护某些数据不让它意外的被修改。

示例:

const original = reactive({ count: 0 }) 

// 常量copy是只读的,original值发生变化时,copy也会变化。 const copy
= readonly(original) // 常量:original 我们称为原值。 watchEffect(() => { // 用来做响应性追踪 console.log(copy.count) }) // 更改源属性会触发其依赖的侦听器 original.count++ // 更改该只读副本将会失败,并会得到一个警告 copy.count++ // warning!

 

注意:readonly()返回的对象是否响应视图,与他接收到参数有关。接收响应式参数时,返回的是响应式对象,示例:

<template>
    {{ab}}
</template>

<script setup>
    import {
        ref,
        readonly
    } from 'vue'

    const counter = ref(2)
    const ab = readonly(counter) // 接收响应式的参数时,它返回的也是响应式,会更新到视图
    
    setTimeout(() => {
        counter.value = 44 
        console.log(ab.value);
    }, 5000)
</script>

 

posted @ 2022-09-14 14:12  1024记忆  阅读(777)  评论(0)    收藏  举报