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

概述

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

一种是 使用 router-link

<router-link :to="{ name: 'abouts', query: { myTab: 2 } }">
                    联系我们
</router-link>

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

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

<div
            class="col-lg-4 m-15px-tb"
            v-for="(item, i) in solutionList"
            :key="i"
            @click="goSolution(item.id)"
          >

对应的js 代码为

  goSolution(id) {
      this.$router.push({ name: "solutiondetails", query: { solutionId:id} });
    },

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

处理

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

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、右侧有显示别的信息,当点击该信息时显示对应的内容

// 监听组件路由变化
  beforeRouteUpdate(to, from, next) {
    this.news_id = to.query.news
    this.getNewsDetail()  //重置id,重新发送请求
    next()
  },

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

在这里插入图片描述

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

最后

以上就是无辜小丸子为你收集整理的vue router 导航守卫的应用(当前页面路由参数发生改变)的全部内容,希望文章能够帮你解决vue router 导航守卫的应用(当前页面路由参数发生改变)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部