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

Vue 中监测路由变化时,通常不需要开启深度监听(deep: true)

1. 路由变化的本质:引用地址改变

Vue 路由的核心对象是 $route(或通过 useRoute() 获取的路由对象),当路由发生变化(如跳转页面、参数改变)时,Vue Router 会创建一个新的 $route 对象,而不是修改原有对象的属性。

  • 例如:从 /home?id=1 跳转到 /home?id=2 时,$route 是一个全新的对象(引用地址改变),而非在原对象上修改 query.id

这种情况下,普通监听(不开启 deep)即可捕获变化,因为监听的是 $route 对象本身的引用变化,而非其内部属性的修改。

2. 深度监听的作用场景

deep: true 的作用是监听对象内部嵌套属性的变化(当对象引用不变,但内部属性被修改时)。例如:

data() {

return {

user: { name: '张三', age: 20 }

}

}

// 若只修改 user.age,不修改 user 的引用,需开启 deep 才能监听到

watch: {

user: {

handler(newVal) {},

deep: true // 必须开启,否则监听不到

}

}

但路由变化不属于这种情况 ——$route 的引用会直接改变,因此无需深度监听。

总结

  • 路由变化时,$route 对象的引用会改变,而非内部属性修改,因此普通监听即可捕获。
  • deep: true 用于监听引用不变但内部属性修改的对象,与路由变化的特性不匹配。

因此,监测路由变化不需要开启深度监听。

http://www.xdnf.cn/news/15061.html

相关文章:

  • Linux中rw-rw-r--相关的访问权限讲解
  • android TabLayout 标题栏切换 事件拦截
  • 达梦数据库不兼容 SQL_NO_CACHE 报错解决方案
  • 三、神经网络——网络优化方法
  • Ansible:强大的自动部署工具
  • 线上事故处理记录
  • STM32单片机_3
  • Linux驱动开发(platform 设备驱动)
  • RV1126平台(Buildroot Linux)+ SunplusIT SPCA2688 USB摄像头 RTSP推流全流程复盘与问题解决记录
  • 对象序列化与反序列化
  • 快速将照片从三星手机传输到电脑
  • 节点小宝:手机图片备份至电脑功能实测体验
  • linux系统---ISCSI存储服务
  • GitHub信息收集
  • Flutter跨平台开发全解析
  • 从Rust模块化探索到DLB 2.0实践|得物技术
  • Spring Boot 企业级动态权限全栈深度解决方案,设计思路,代码分析
  • 深度学习与图像处理案例 │ 基于深度学习的自动驾驶小车
  • 降低新品试错成本,助力可持续增长
  • ubuntu server远程连接
  • AT9850B北斗双频导航定位芯片简介
  • 9N70-ASEMI太阳能逆变器专用9N70
  • 搭建自动化工作流:探寻解放双手的有效方案(1)
  • 测试开发和后端开发到底怎么选?
  • Leetcode刷题营第十九题:对链表进行插入排序
  • (LeetCode 每日一题) 3440. 重新安排会议得到最多空余时间 II (贪心)
  • 智能体的记忆系统:短期记忆、长期记忆与知识图谱
  • EFK/ELK9.0.3 windows搭建
  • ASP.NET Core 8 轻松配置Serilog日志
  • STM32-定时器输入捕获