vue快速入门(五十三)使用js进行路由跳转

注释很详细,直接上代码

上一篇

新增内容
几种常用的路由跳转方式演示

源码

App.vue

<template>
  <div id="app">
    <div class="nav">

      <!-- 
          router-link 自带两个高亮样式类 router-link-exact-active和router-link-active
          区别:router-link-active为模糊类(大多数时候用这个),只要是以/myMusic开头的都可以被匹配到
          router-link-exact-active为精确类,只有/myMusic才能被匹配到

          当然这两个类名也是可以自定义的,具体详见index.js文件的创建路由实例部分
      -->

      <router-link to="/myMusic" class="router-link-normal">我的音乐</router-link>
      <!-- 动态传参方法 -->
      <router-link :to="`/findMusic/${this.name}`" class="router-link-normal">发现音乐</router-link>
      <router-link to="/attentionSigner" class="router-link-normal">关注歌手</router-link>
    </div>
    <button @click="backslove">后退</button>
    <button @click="nextslove">前进</button>
    <button @click="pushslove">跳转+历史记录</button>
    <button @click="replaceslove">跳转+不记录历史记录</button>
    <div class="content">
      <router-view></router-view>
    </div>
  </div>
</template>
<script>

export default {
  name: "App",
  components: {
  },
  data() {
    return {
      name:'代码对我眨眼睛'
    };
  },
  methods: {
    //处理方法
    backslove(){
      this.$router.back();
    },
    nextslove(){
      this.$router.forward();
    },
    pushslove(){
      this.$router.push({//可以写成对象形式传参
        name:'ats',//名字在路由配置时可以起
        query:{//查询参数传参
          name:this.name
        },
        params:{//动态路由传参(记得在路由配置中配置接受参数)
          name:this.name
        }
      });
    },
    replaceslove(){
      this.$router.replace('/attentionSigner');
    }
  },
  /*当然还有一种方法,就是使用this.$router.go()方法,
  参数为-1、1、2,分别代表后退、前进、前进页面次数
  但一般情况下,前面的方法已经够用了
  */
};
</script>
<style lang="less">
*{
  margin: 0;
  padding: 0;
}

/*清除下划线和修改未被选择的文字颜色*/
a {
  text-decoration: none;
  color: aliceblue;
}
.router-link-active{
  color: red;
}
.nav{
  display: flex;
  justify-content: space-around;
  background-color: #242424;
  height: 50px;
}
.router-link-normal{
  height: 50px;
  line-height: 50px;
  font-size: 20px;
}
</style>

src/router/index.js

//导入所需模块
import Vue from "vue";
import VueRouter from "vue-router";
import myMusic from "@/views/myMusic.vue";
import findMusic from "@/views/findMusic.vue";
import attentionSigner from "@/views/attentionSigner.vue";
import recommendList from "@/views/recommendList.vue";
import rankingList from "@/views/rankingList.vue";
import songList from "@/views/songList.vue";
import notFound from "@/views/notFound.vue";
//调用函数将VueRouter插件安装为Vue的插件
Vue.use(VueRouter);

//配置路由规则
const routes = [
  //重定向
  { path: "/", redirect: "/MyMusic/recommendList" },
  {
    path: "/myMusic",
    component: myMusic,
    // 二级路由无需写'/'
    children: [
      {
        path: "recommendList",
        component: recommendList,
      },
      {
        path: "rankingList",
        component: rankingList,
      },
      {
        path: "songList",
        component: songList,
      },
    ],
  },
  {
    // 动态路由接受参数(后面加问号表示为可选参数)
    path: "/findMusic/:name?",
    component: findMusic,
  },
  {
    path: "/attentionSigner",
    component: attentionSigner,
  },
  {
    path: "/songList/",
    component: songList,
  },
  {
    path: "/rankingList/",
    component: rankingList,
  },
  {
    path: "/recommendList/",
    component: recommendList,
  },
  {
    path: "/attentionSigner/:name?",
    name:"ats",//起个名字,方便跳转
    component: attentionSigner,
  },
  // 404的情况(*通配符,放在最后匹配其他所有情况)
  {
    path:"*",
    component:notFound
  }
];

//创建路由实例
const router = new VueRouter({
  // 路由配置
  routes,
  //历史模式
  mode: 'history'
  //这里可以修改router-link的默认类名
  /*
    linkActiveClass:'my-active-class',
    linkExactActiveClass:'my-exact-active-class'
    */
});
//导出路由实例
export default router;

效果演示

在这里插入图片描述

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue中,在响应拦截器中跳转路由可以通过使用Vue Router实现。要在响应拦截器中跳转路由,首先需要在项目中引入Vue Router,并在main.js或者需要使用路由文件进行配置。 首先,需要在项目中安装Vue Router,可以使用npm或者yarn进行安装。然后,在main.js文件中引入Vue Router并配置: ```javascript import Vue from 'vue' import VueRouter from 'vue-router' import App from './App.vue' Vue.use(VueRouter) const router = new VueRouter({ routes: [ // 定义路由信息 { path: '/home', component: Home }, { path: '/about', component: About }, // ... ] }) new Vue({ router, render: h => h(App) }).$mount('#app') ``` 然后,在需要使用响应拦截器的地方进行配置: ```javascript import axios from 'axios' import router from './router' axios.interceptors.response.use(response => { // 在响应拦截器中对返回的响应进行逻辑处理 if (response.status === 200) { // 根据逻辑判断,如果需要跳转路由,可以使用router.push方法实现跳转 router.push('/home') // 这是示例,跳转到名为home的路由 } return response }, error => { return Promise.reject(error) }) ``` 在上述代码中,我们使用router.push方法在响应拦截器中跳转到指定的路由。通过在Vue Router中定义路由规则,我们指定了需要跳转的目标路由。当满足某个条件时,我们调用router.push方法进行路由跳转。 需要注意的是,我们需要确保在使用router实例之前Vue Router已经完成了初始化和配置。在main.js文件中,我们在创建Vue实例之前初始化并传入了router实例。 这样,在响应拦截器中调用router.push方法就可以实现路由跳转了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码对我眨眼睛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值