博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue当前路由跳转初步研究
阅读量:6258 次
发布时间:2019-06-22

本文共 910 字,大约阅读时间需要 3 分钟。

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

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

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

  我在路由的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变化,哪怕是query参数变化,都会触发跳转

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

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

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

 

转载地址:http://lgtsa.baihongyu.com/

你可能感兴趣的文章
VUE(1)
查看>>
QBlog博客 V2.5 版本发布 增加健康频道[支持多语言、多用户、多数据库、目录级URL]...
查看>>
基于MIC平台的向量加示例
查看>>
搜索引擎 & sniff
查看>>
linux 编程使用管道来控制 shell
查看>>
免费客户关系管理软件SinoCRM公益版正式发布
查看>>
Python与C++引用分析
查看>>
gcc和g++的区别
查看>>
React组件间的传值
查看>>
Spring扫描自定义注解的实现
查看>>
交互设计的 UI 原则
查看>>
JVM的内存区域划分
查看>>
100行PHP代码实现socks5代理服务器
查看>>
js框架
查看>>
linux安装postgresql
查看>>
Android开发、测试持续集成环境Jenkins搭建
查看>>
linux RZSZ RZSZ 安装
查看>>
BPM 是与非 -- 什么是BPM,如何辨别是否BPM产品,以及如何选择BPM产品
查看>>
七秘诀工作效率与薪水翻番
查看>>
spring boot + log4j2 配置
查看>>