Vue|Vue $route无法检测的原因

做测试的时候随手在组件内写下watch $route却发现没有执行。但正常项目中确是可以使用的。测试了几组,发现$route并不是在任意组件内都可以监听到
可以监听到变化的情况
  1. App.vue文件中可以监听到
  2. 不同路由使用同一页面的组件,可以在页面中监听
  3. 父路由不变,子路由变化,可以在父路由中监听
不可以监听到变化的情况 【Vue|Vue $route无法检测的原因】1.不同的页面组件监听不到
2.不同页面下的公共组件监听不到
3.父路由不变,子路由变化,子路由中监听不到
  • 解析
因为watch只是在监听变化时运行,并且运行在没有被销毁的组件中。如果是切换路由,导致组件重新渲染,被重新渲染的组件内的'watch'因为没有监测到变化,不会被运行。

    推荐阅读