vue如何给每个路由添加一个参数?

问题描述

如题,目前需求是在每个页面的url上面增加一个参数,也就是一个用户id。

问题出现的环境背景及自己尝试过哪些方法

使用过了直接在router.beforeEach里面直接写router.push({query:{user_id:user_id}});这种方式,确实是在所有的url上面都加上了id。但是,之前在url上面添加的参数都失效不见了,比如列表进入详情页,带入id,现在这个id没有了。而且,直接卡死在这个页面,返回不到上一个页面。并且,底部导航选中状态没有了,具体的看下图。

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

router.beforeEach((to, from, next) => {
 next()
 router.push({
  query:{
    user_id:'888',
  }
 })
})

你期待的结果是什么?实际看到的错误信息又是什么?

期待大神帮我解答,又遇到类似的,可以说说你们现在的情况吗?

图片描述
图片描述
图片描述

加上路由之前
图片描述

加上路由之后
图片描述

阅读 10k
4 个回答

为什么要用 push
不是应该直接改 query 么

router.beforeEach((to, from, next) => {
 to.query.user_id = '888';
 next();
})

额,你问的是每一个url都需要携带一个用户ID?
那么我可以这样理解么:
1、userID是相同的,那么为什么每个url需要这么写,其实你可以使用全局vue.prototype.$userID就行了,每个页面都可以获取该ID。
2、userID是不同的,那么使用你那种方法,而且上述已经回答了答案。

疑问:如果user_id是当前登录的用户,那么不需要,应该是后端session起来的,每次请求后端自动获取当前登录用户的id

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏