Vue $route无法检测的原因

做测试的时候随手在组件内写下watch $route却发现没有执行。但正常项目中确是可以使用的。测试了几组,发现$route并不是在任意组件内都可以监听到

可以监听到变化的情况

  1. App.vue文件中可以监听到
  2. 不同路由使用同一页面的组件,可以在页面中监听
  3. 父路由不变,子路由变化,可以在父路由中监听

不可以监听到变化的情况

1.不同的页面组件监听不到
2.不同页面下的公共组件监听不到
3.父路由不变,子路由变化,子路由中监听不到

  • 解析

因为watch只是在监听变化时运行,并且运行在没有被销毁的组件中。如果是切换路由,导致组件重新渲染,被重新渲染的组件内的'watch'因为没有监测到变化,不会被运行。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.css只在当前组件起作用答:在style标签中写入scoped即可 例如: 2.v-if 和 v-show 区...
    小棋子js阅读 543评论 0 0
  • 三、组件 组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML元素,封装可重用...
    小山居阅读 638评论 0 1
  • vue的特点 Vue.js是一款轻量级的以数据驱动(数据的变化将引起视图的变化)的构建单页面应用的mvvm框架,它...
    阿踏阅读 1,981评论 1 11
  • 前言 接上篇前端Js笔试题面试题,收集整理Vue相关的面试题,供自己现在和以后学习和面试,也希望能对点进来的小伙伴...
    蛙哇阅读 2,653评论 0 10
  • 什么是Vue Vue.js 是一套构建用户界面的框架 只关注视图层 易于上手,还便于与第三方库或即有项目整合 M...
    ef44694b25cb阅读 894评论 0 0