Vue.js路由回退到指定页面

vue-router

//会记录跳转的路由,并存在 history 栈里(具有length属性),适合不同页面的切换
router.push();

//不会记录路由,回退不到上一个页面,适合单页面的切换
router.replace();

//可对比history.go()的用法
router.go();

router导航守卫

router导航守卫有全局的、路由独享的、组件的。

假设从A页面 -> B页面 -> C 页面,如果按回退按钮的话,想回到A页面,而不是正常的回退到B页面,该怎么实现呢?

//router --> index.js

import Vue from 'vue'
import Router from 'vue-router'
import a from '@/components/a' //a 组件
import b from '@/components/b' //b 组件
import c from '@/components/c' //c 组件 

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      component: a
    },
    {
      path: '/a',
      component: a
    },
    {
      path: '/b',
      component: b,
      beforeEnter: (to, from, next) => {
        from.path == '/c' ? next('/') :next();
      }
      //beforeEnter 在进入这个路由之前,先判断是从哪个路由跳转的
    },
    {
      path: '/c',
      component: c
    }
  ]
})

在路由独享的守卫,使用next(‘/’),或者其他路由,是不会报错的。但是如果在组件里使用,是会报错的,在组件里只能使用,也必须要调用next()

history.length

运行项目,打开控制台,分别打印下historyhistory.length,可以看到路由是保留在数组里的,并且能获得length值,那么我们就可以直接跳转到首页

let len = history.length;
history.go(-(len-1));
上一篇 vue-cli webpack全局引入jquery
下一篇 Vue项目中使用stylus(.styl文件)
目录
文章列表
1 无需绑定设备,下载Google Play上的某个apk文件
无需绑定设备,下载Google Play上的某个apk文件
2
Android TimerTask定时任务卡顿
Android TimerTask定时任务卡顿
3
Linux系统上安装OpenOffice4
Linux系统上安装OpenOffice4
4
Nacos配置实时生效测试
Nacos配置实时生效测试
5
Groovy代码示例 - groovy中如何执行shell命令?
Groovy代码示例 - groovy中如何执行shell命令?
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。