在某个页面文件内(如welcom.vue)用beforeRouteEnter (to, from, next)可以获取前后下的所有路由,在项目开发中经常会用到。比如用来做路由跳转控制、在路由跳转前或后调用方法等。

其中遇到的一个问题是,要点击浏览器返回按钮返回上一页,但我们这个项目进入首页前还有一个动画页(也就是说,只点一次返回按钮,是到动画页,动画页自动鉴权又直接进了首页,导致看起来是没有正常回到上一页)

在beforeRouteEnter中就判断了该页面前的路由是从哪来的,如果是从首页来的,就直接返回上两页

这里记录下

export default {
  beforeRouteEnter (to, from, next) {
    if (to.name !== 'Welcome') {
      next({name: 'Index', query: {menu_id: to.params.menuId}})
    }
    else {
      next(vm => {
        vm.getReadyForIndex()
      })
    }
    if (from.name === 'Index') {
      history.go(-2)
    }
  }
}

 

Logo

前往低代码交流专区

更多推荐