需求是什么

所有的路由跳转加一个统一的参数

实现方式

先深入理解一下router的全局前置守卫

router.beforeEach((to, from, next) => {
const queryData = to.query
if(from.path!='/'){// 刷新和首次进来的时候from.path都没有值
if(from.query.chCode!=to.query.chCode){
to.query.chCode = from.query.chCode
router.push({path:to.path,query:to.query})
return
}
}
// token存在
if (vuex.getters.getAccessToken) { // 这个if判断的动作是我自己的业务逻辑
const param= cloneDeep(queryData)
if (queryData.code) {
delete param.code
delete param.state
next({query:param})
} else {
next()
}
// code存在
}else if (queryData.code) {
const param= cloneDeep(queryData)
delete param.code
delete param.state
let appIds
if(localStorage.getItem('temp')!=='wx'){
appIds='ww4426bfa09f4b044b'
}else{
appIds='wx34284214d7a79ba1'
}
const params={
appId: appIds,
code: queryData.code
}
http(urls.jointLogin, params).then(res => {
vuex.dispatch('setAccessToken', res.data.accessToken)
next({path:to.path, query:param})
}).catch(err => {
next({path:'/500',query:param})
}) } else {
next()
}

遇到什么问题

因为。beforeeach的这个函数。 其实在路由进页面之前就定好了。 你现在改也无济于事。 已经是马后炮了 这个next函数,,这里面又分为四种情况。如上面的图,仔细品味一下,什么值都不传的时候,它是相当于又走了一个完整的生命周期,并不是说接着你之前的走,,,我刚开始的做法是 在beforeEach的to和from里,能获取到带的参数,在这个时候我也能加参数,但是你在这个时候不管加多少参数,页面路由跳转的时候url都收不带这个参数的(因为它走的是next()方法,重新走了生命周期,你刚刚加的就没效果)。所以你在这个时候。 应该让她 不重新走生命周期,,打破常规。 重新调路由的方法,让他跳转传参数,就解决了

解决方法



跳转到一个不同的地址。当前的导航被中断,然后进行一个新的导航。

最新文章

  1. angular路由——ui.route
  2. 最小生成树(prim&kruskal)
  3. CRM 启用或禁用自定义代码执行
  4. 牛客网程序员面试金典:1.1确定字符互异(java实现)
  5. IOS开发常用设计模式
  6. 百度地图api简单使用方法
  7. [转]Delphi多线程编程入门(一)
  8. 配置域名服务器报错named[822]: dns_rdata_fromtext /etc/bind/db.asertest.com mail not a valid number
  9. HDU 4539郑厂长系列故事――排兵布阵(状压DP)
  10. MVVM命令绑定原理
  11. 51Nod 1084 矩阵取数问题 V2 双线程DP 滚动数组优化
  12. 生成器&迭代器
  13. 封装和static 以及关键字“this”的用法
  14. Redis入门第一课
  15. [SQL in Azure] Tutorial: AlwaysOn Availability Groups in Azure (GUI)
  16. OGG遇到相关问题汇总
  17. [UE4]产生开枪特效
  18. 2016.5.19——Excel Sheet Column Title
  19. http://code52.org/DownmarkerWPF/
  20. android 创建 xml文件

热门文章

  1. Failed reading log event, reconnecting to retry
  2. mac 下安装mcrypt 扩展
  3. eclipse 启动程序时错误弹窗:multiple problems have occurred
  4. Kattis - Speed Limit
  5. day19-2 生成器,递归函数
  6. vector的resize与reserve的区别
  7. 如何设置,获取,删除cookie?
  8. springboot项目封装为docker镜像
  9. 表单标签 fieldset legent
  10. OpenRail中地形模型特征的含义