当前位置: 首页 > news >正文

Vue浅响应式如何解除深层响应式的性能问题?适用场景有哪些?


url: /posts/c85e1fe16a7ae45e965b4e2df4d9d2f4/
title: Vue浅响应式如何解决深层响应式的性能问题?适用场景有哪些?
date: 2025-11-14T01:59:18+08:00
lastmod: 2025-11-14T01:59:18+08:00
author: cmdragon

summary:
Vue 的响应式系统默认是深层响应式的,但深层代理可能带来性能开销。浅响应式(Shallow Reactivity)通过 shallowReactiveshallowRef 仅跟踪顶层属性的变化,避免递归代理嵌套对象。shallowReactive 只响应顶层属性的修改,而 shallowRef 仅跟踪 .value 的替换操作。浅响应式适用于处理大型对象或外部管理的状态,以减少响应式开销。通过浅响应式,Vue 可以更高效地管理状态,避免不必要的性能损耗。

categories:

  • vue

tags:

  • 基础入门
    • Vue.js
  • 浅响应式
  • 性能优化
  • 状态管理
  • shallowReactive
  • shallowRef
  • 外部库集成

cmdragon_cn.png

扫描二维码关注或者微信搜一搜:编程智域 前端至全栈交流与成长

发现1000+提升效率与开发的AI工具和实用程序:https://tools.cmdragon.cn/

浅响应式的概念:与深层响应式的区别

Vue 的响应式系统默认是深层响应式的——当你用 reactiveref 包裹对象时,Vue 会递归地将所有嵌套属性转换为响应式代理。比如:

import {
 ref } from 'vue'
const obj = ref({
 a: {
 b: 1 } })
obj.value.a.b = 2 // 触发更新(深层响应式)

这种行为很方便,但也会带来性能开销:如果对象非常大(比如包含 thousands 条数据的列表),或者内部状态由外部库管理(比如 axios 响应、第三方状态库),深层代理会浪费资源。

浅响应式(Shallow Reactivity)就是为了解决这个问题:它只跟踪顶层属性的变化,不处理嵌套对象的响应式。Vue 提供了两个 API 实现浅响应式:shallowReactive(对应 reactive)和 shallowRef(对应 ref)。

shallowReactive:只跟踪顶层属性的响应式对象

shallowReactivereactive浅版本,它仅将对象的顶层属性转换为响应式,嵌套对象不会被代理。也就是说:

  • 修改顶层属性(如 state.a)会触发更新;
  • 修改嵌套属性(如 state.b.c)不会触发更新;
  • 替换嵌套对象的引用(如 state.b = { new: 'data' })会触发更新(因为 b 是顶层属性)。

示例代码

import {
 shallowReactive } from 'vue'
// 创建浅响应式对象
const state = shallowReactive({

a: 1,          // 顶层属性(响应式)
b: {
 c: 2 }    // 嵌套对象(非响应式)
})
// 1. 响应式变化:修改顶层属性
state.a = 2 // ✅ 触发组件更新
// 2. 非响应式变化:修改嵌套属性
state.b.c = 3 // ❌ 不会触发更新
// 3. 响应式变化:替换嵌套对象引用
state.b = {
 c: 3 } // ✅ 触发更新(因为 b 是顶层属性)

shallowRef:只跟踪.value变化的浅引用

shallowRefref浅版本,它仅跟踪 ref.value替换操作,不处理 value 内部的深层响应式。也就是说:

  • 替换 ref.value(如 obj.value = { new: 'data' })会触发更新;
  • 修改 ref.value 的内部属性(如 obj.value.a = 2)不会触发更新。

示例代码

import {
 shallowRef } from 'vue'
// 创建浅引用
const obj = shallowRef({
 a: 1 })
// 1. 响应式变化:替换.value
obj.value = {
 a: 2 } // ✅ 触发更新
// 2. 非响应式变化:修改.value内部属性
obj.value.a = 3 // ❌ 不会触发更新

注意:sha

http://www.jsqmd.com/news/70607/

相关文章:

  • Oracle数据库物理备份与恢复技术深度解析
  • 2025年12月弱电安防系统,入侵报警安防系统,出入口安防系统厂商推荐,实测稳定性与兼容性!​ - 品牌鉴赏师
  • 在Mac下使用Draw Things跑Z-Image-Turbo文生图
  • 2025 年 12 月江西雾化器厂家权威推荐榜:压缩式/便携式/医用/儿童/低噪音/高效能雾化器,专业制造与静音科技深度解析 - 品牌企业推荐师(官方)
  • 2025年整平机供货商权威推荐榜单:大型激光整平机/小型激光整平机/混泥土摊铺整平机直销厂家精选 - 品牌推荐官
  • 2025年上海长宁区口腔机构实力榜:长宁区种植牙、长宁区牙齿矫正、长宁区根管治疗、长宁区牙齿贴面、长宁区无痛补牙、长宁区无痛拔牙、领域四家机构凭技术与口碑出圈 - 海棠依旧大
  • 【JUnit实战3_32】第二十章:用 JUnit 5 进行测试驱动创建(TDD)(上)——将非 TDD 项目改造为 TDD 项目
  • 2025高速护栏优质品牌评测报告-全维度采购参考 - 优质品牌商家
  • 2025 年 12 月江西一次性气管插管厂家权威推荐榜:涵盖成人/儿童/带囊/无菌/急救/麻醉等全场景医用导管精选 - 品牌企业推荐师(官方)
  • 社区管理行业地埋站品牌选哪家2025年优质品牌推荐 - 优质品牌商家
  • 交通设施行业公路波形护栏优质公司推荐指南场景适配选择 - 优质品牌商家
  • 2025垃圾中转站数智果皮箱AI智能分选功能评测报告 - 优质品牌商家
  • 2025高速公路护栏品牌评测报告 - 优质品牌商家
  • 晶体炉装置制造厂哪家售后好?晶体炉装置加工厂哪家更值得选? - 工业品牌热点
  • 客服团队崩溃边缘?这款开源AI神器让售后效率提升300%
  • web格式化
  • 2025年土壤/水质/化妆品重金属分析仪源头厂家推荐/工厂质检实验室仪器源头厂家/工业巡检无人车源头厂家/运输无人车源头厂家 - 品牌推荐大师1
  • 吴恩达发布论文自动审阅器,ICLR评审接近人类水平
  • 10款超强降AI工具!AI率从89%狂降到5%!亲测有效【2025最新版】
  • 佛山家具厂实测:口碑背后的真实服务水平究竟如何? - 真知灼见33
  • sglang v0.5.5.post3 框架图
  • 国产凯氏定氮仪怎么选,推荐国产凯氏定氮仪生产厂家,可定制的 - 品牌推荐大师
  • 石英玻璃退火点测试仪比较可靠的企业、信誉好的供应商 - 品牌推荐大师
  • LNMP拆分静态资源——解决多台服务器静态资源不一致、节省服务器储存空间、便于推送至CDN进行静态资源加速
  • 搞定多模态微调只需一杯咖啡的时间?FC DevPod + Llama-Factory 极速实战
  • 2025矿用电缆制造厂家TOP5权威推荐:合作案例与售后能力 - mypinpai
  • 2025年中国正宗螺蛳粉加盟公司推荐:地道螺蛳粉加盟哪个品牌 - 工业推荐榜
  • 2025年五大知名气密仪器厂家排行榜,气密仪器来图定制服务商 - myqiye
  • 2025年12月工业陶瓷,氧化铝陶瓷,工业陶瓷厂家推荐:行业权威盘点与品质红榜发布​ - 品牌鉴赏师
  • 2025河南餐饮服务TOP5权威测评:河南永邦餐饮服务实力解 - myqiye