我是靠谱客的博主 无辜小丸子,这篇文章主要介绍vue router 导航守卫的应用(当前页面路由参数发生改变),现在分享给大家,希望可以做个参考。

在当前页面实现 路由 跳转 有两种方式:

一种是 使用 router-link

复制代码
1
2
3
4
<router-link :to="{ name: 'abouts', query: { myTab: 2 } }"> 联系我们 </router-link>

还有一种 :通过方法的形式

给页面中的元素 绑定事件 比如 :

复制代码
1
2
3
4
5
6
7
8
<div class="col-lg-4 m-15px-tb" v-for="(item, i) in solutionList" :key="i" @click="goSolution(item.id)" >

对应的js 代码为

复制代码
1
2
3
4
goSolution(id) { this.$router.push({ name: "solutiondetails", query: { solutionId:id} }); },

然后,跳转页面的路由就会发生变化为类似于这种形式的
在这里插入图片描述

处理

在被跳转页面 需要进行的处理
1、根据传过来的id,向后台请求对应的数据
获取 传过来的id:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
this.$route.query.solutionId[这是对应的字段名] 在 create 和active 中需要给data中的id赋值 如: activated() { let newsId = this.$route.query.news this.news_id = newsId //更新data中的id this.getNewsDetail() //该方法为封装的接口请求数据 // 获取往期推荐 this.getNews() // this.getMd() },

只设置activater 是不能实现组件的刷新的,能实现组件的更改。
那么就到了下边这个问题 ,使用导航守卫
2、右侧有显示别的信息,当点击该信息时显示对应的内容

复制代码
1
2
3
4
5
6
7
// 监听组件路由变化 beforeRouteUpdate(to, from, next) { this.news_id = to.query.news this.getNewsDetail() //重置id,重新发送请求 next() },

使用导航守卫,可以监听路由变化,然后,将发生变化的id 重新设置,最后,根据id 重新拉请求
最终就实现了该效果 点击 右侧 往期推荐前:

在这里插入图片描述

点击往期推荐后
在这里插入图片描述
路由中 articals 发生了改变,且内容也随之发生了改变

最后

以上就是无辜小丸子最近收集整理的关于vue router 导航守卫的应用(当前页面路由参数发生改变)的全部内容,更多相关vue内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(83)

评论列表共有 0 条评论

立即
投稿
返回
顶部