基本用法
- 接受一个对象 (响应式或纯对象) 或 ref 并返回原始对象的只读代理。
const original = reactive({ count: 0 })
const copy = readonly(original)
watchEffect(() => {
// 用于响应性追踪
console.log(copy.count)
})
// 变更 original 会触发依赖于副本的侦听器
original.count++
// 变更副本将失败并导致警告
copy.count++ // 警告! Set operation on key "name" failed: target is readonly.
- 只读代理是深层的:任何被访问的嵌套 property 也是只读的。
const obj = {name: 'hyh', info: { age: 26 }}
const copy = readonly(obj)
copy.name = '11'
copy.info.age = 30
// 警告! Set operation on key "name" failed: target is readonly.
- 与 reactive 一样,如果任何 property 使用了 ref,当它通过代理访问时,则被自动解包
const raw = {
count: ref(123)
}
const copy = readonly(raw)
console.log(raw.count.value) // 123
console.log(copy.count) // 123
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具