一样闲话少说,直接上问题,如图:

  也是消息面板,没想到一个小小的消息面板,碰到这么多坑,惆怅。

  就是如果当前路由和跳转路由不一样时,正常跳转没有任何问题。但是如果一样时,就不会跳转了,用了很多方法,比如给router-view加key,beforeRouterLeave,watch路由等都没有效果。这个路由跳转用的是params形式

<router-link :to="{
  name:item.route,
  params:{
    messageId:item.rid
  }
}"></router-link>

  我在路由的beforeRouterLeave,beforeEach加断点,发现根本就不会走进去。后来自己胡乱猜测了一下,是不是虽然是params变了,但是路由name根本一点没变,所以路由根本就不动。但是一直又有个疑问,为什么下面这样计算属性,随route的params变化,都不起作用,完全进不了这个方法,watch也是类似,希望大神看到可以指点一二。

 computed:{
activeQuery(){
return this.$route.params + new Date()
}
}

  后来想着换个方式,换query试试,因为query后面会跟  ?aa=22  类似的东西,想着这样是不是就能变化。

  首先浏览器渲染加了参数

  beforeEach也会走进去,我们看下to和from区别:可以看到name一样,path一样,但是fullPath不一样

  多看一个:可以看到同样也是name一样,path一样,但是fullPath不一样

  然后我们每次也会走进计算属性那个方法

  这样其实就可以看到,我们的问题基本解决了。

  所以总结一下:大胆猜测,路由的跳转看的就是fullPath,fullPath不变化,就不会跳转。fullPath变化,都会触发跳转

  所以我们再试一下,继续点481,发现确实一点debugger都没有了。

  然后就是router-view的key:无key的话,路由复用不加载;有key的话,重新加载

<router-view :key="activeQuery"></router-view>

computed:{
  activeQuery(){
    return this.$route.query + new Date()
  }
}

最新文章

  1. interpreter(解释器模式)
  2. cocoapods安装以及使用,安装过程中ruby版本过低
  3. TCP的那些事儿(上)
  4. Ubuntu 14.04 LTS 安装 VNC Viewer
  5. Yii2.0 多文件上传
  6. Jquery 学习插件第一天
  7. UVA 11292 - The Dragon of Loowater (water)
  8. iOS面试必看经典试题分析
  9. php常用的优化手段
  10. Java入门(3)—— 数组
  11. Hadoop Streaming详解
  12. jdk自带的MD5进行数据的加密与解密
  13. JVM初探- 内存分配、GC原理与垃圾收集器
  14. lambda 怎么传递ref参数
  15. MySQL5.6启用sha256_password插件
  16. 关于parseInt()里的一些小坑
  17. UVA 12345 Dynamic len(带修莫队)
  18. 【题解】 [ZJOI2009]假期的宿舍 (二分图匹配)
  19. tp5集成淘宝,微信,网易,新浪等第三方登录
  20. 公共文件模块include

热门文章

  1. 安装部署VMware vSphere 5.5文档 (6-5) 安装配置vCenter
  2. [Arc058E] Iroha and Haiku
  3. 【初识】KMP算法入门
  4. hdu 2216 bfs
  5. PYQT窗口托盘目录
  6. 3、Redis中对String类型的操作命令
  7. UVA 10177 Sqr/Rects/Cubes/Boxes?
  8. Codeforces Round #297 (Div. 2)D. Arthur and Walls 暴力搜索
  9. ZOJ 3631 Watashi&#39;s BG DFS
  10. oracle case when exists()