Vue 3 reactive 怎么使用 shallowReactive 浅层响应

胖静君_5958

胖静君_5958

2026-10-19

443人浏览

原创

shallowreactive 是 vue 3 中独立于 reactive 的浅层响应式 api,仅对对象第一层属性建立响应式追踪,嵌套对象保持非响应式;适用于顶层状态变更驱动更新的场景,如表单控制、大型数据源整体替换等。

vue 3 reactive 怎么使用 shallowreactive 浅层响应

Vue 3 中,shallowReactive 不是用来“配合”或“改造” reactive 的,而是它自己的独立 API —— 它是 reactive 的浅层替代方案,二者互不嵌套、不可混用。你不需要也不应该把 reactive 和 shallowReactive 串起来用(比如 shallowReactive(reactive(...))),那样既无意义,也破坏设计意图。

shallowReactive 是什么

它创建一个仅对对象第一层属性做响应式追踪的代理对象。内部嵌套的对象、数组、Map 等,保持原样,不会被递归转为响应式。

  • 顶层赋值/修改会触发更新:如 state.count = 5、state.config = { theme: 'dark' }
  • 深层修改不会触发更新:如 state.user.profile.name = 'Alice' —— 值变了,但视图不刷新
  • 返回的是普通对象语法(不用 .value),但它是 Proxy 代理,不是原始对象

怎么正确使用 shallowReactive

直接导入并传入普通对象即可,和 reactive 用法相似,但语义不同:

vue-composition-api-best-practices
vue-composition-api-best-practices

Vue 3 组合式 API 与

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue 教程
Vue 教程

共42课时 | 17.1万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.4万人学习

Vue.js 微实战--十天技能课堂
Vue.js 微实战--十天技能课堂

共18课时 | 1.7万人学习