vue 路由新增参数 刷新页面
vue项目中默认一进来的路由是 localhost:3000/#/work/workflow
该页面是一个父组件 组件下有3个子组件,页面有一个tab切换,分别展示对应的组件。
我现在想实现的是当我点击第三个tab的时候 我想给当前路由添加一个参数,也就是想改变当前的路由为localhost:3000/#/work/workflow?tab=2。我用的是下面的方法:
this.$router.push(
{
path: '/work/workflow',
query: {
tab: '2'
}
}
)
但是当我切换过来时 页面成了一片空白,需要手动刷新你下才能出现tab为2对应的组件。
各位大神帮忙分析下原因吧,怎样动态给路由添加参数,并且跳转到对应的tab对应的组件
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在页面加载的时候,比如
mounted
时,去拿query
的tab
参数,手动去显示对应的tab
(就是初始化一遍当前显示哪一个)。因为你这是tab
方式,不是子路由
方式,所以这个操做是必需的。如果用的地方很多,就封装一下,也不麻烦。当然,我的项目时使用
tab + 子路由
方式,只需处理刷新时高亮
问题就行,大致就这么个结构你可能是在created钩子去加载数据了。在
/work/workflow
页面里面去push当前的路由,是不会再触发created和mounted这些生命周期的了,所以页面数据没有再次加载。此时,这个需求可以通过watch:$route来捕捉路由的变化,在$route变化时触发数据加载。