从 Vue 只读对象保护中排除键

问题描述 投票:0回答:1

我可以将传递给 Vue 3

readonly()
函数的对象设置为只读。有没有办法让对象除了
obj.target
键或其他指定键之外都是只读的?

import { reactive, readonly } from 'vue'

const obj = reactive({
  name: 'example',
  target: 'DOM',
})

const readonlyObj = readonly(obj)
readonlyObj.target = 'Modal' // not writable by default

有没有办法允许在

target
对象中编辑某些键(如
readonly
)?

vue.js vuejs3
1个回答
0
投票

这意味着该对象需要以某种方式组合,以便可以修改原始的可写

target
属性。

如果由于某种原因无法保留对整个

obj
的引用,则至少需要对
target
进行引用,例如:

// Private
const obj = reactive({
  name: 'example',
  target: 'DOM',
})

// Public
const readonlyObj = readonly(obj)
const targetRef = toRef(obj , 'target')
targetRef.value = 'Modal'
© www.soinside.com 2019 - 2024. All rights reserved.