isReadonly() 判断是否为只读代理

最后更新:2026-10-22

isReadonly() 判断是否为只读代理

isReadonly() 判断值是否由 readonly() 创建(含嵌套的只读代理)。

分组响应式·工具
类型API
作用域组件内
Vue 版本3.0+
SSR 支持支持

📝 语法

isReadonly(readonly({}))  // true
isReadonly(reactive({}))  // false

⚙️ 参数

value任意值

返回值:布尔值

▶ 示例

修改下面的代码,在预览区实时查看效果:

输出:

显示「readonly 对象:true,reactive 对象:false」。

💡 要点

ℹ️ 说明 是 isProxy 的子集判断:只认只读代理。
💡 提示 写库代码时可断言入参是否被冻结,避免运行时意外写入失败。
更多案例即将上线。

📚 相关教程

❓ 常见问题

Q readonly 包 ref 怎么判断?
A isReadonly(readonly(ref(1))) 返回 true——它同样处理 ref 包装。
Q 和 Object.isFrozen 一样吗?
A 不一样:readonly 是代理层,原对象并未冻结。
Q 判断它有什么用?
A 调试定位“为什么写入无效”,或组件库对只读配置做前置校验。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏