vue项目中的导航守卫beforeEach问题

在一个小的demo中使用了导航守卫来做权限控制时出现了一个问题:
hash模式下导航能够成功拦截,但是当切换成history模式时发现,直接在地址栏中输入路径回车,导航守卫不能成功拦截,刷新不能够执行导航守卫的代码块。

造成原因:

原本代码:

new Vue({
  el: '#app',
  router,
  store,
  components: { App },
  template: '<App/>'
})
router.beforeEach((to, from, next) => {
//代码块
})

可以发现,根实例的挂载在导航守卫之前

解决方法:

将根实例的挂载放在导航守卫之后

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 vue-router是什么:是vue.js官方的路由管理器和vue.js的核心深度的集成,让开发者更加简单的...
    GUAN_one阅读 3,753评论 0 2
  • 介绍 vue-router是一个vue插件。其实质是在location.hash、location.replace...
    AmazRan阅读 1,597评论 0 6
  • Vue八个生命周期 beforeCreate【创建前】created【创建后】 beforeMount【载入前】 ...
    艾萨克菊花阅读 1,357评论 0 12
  • 什么是Vue Vue.js 是一套构建用户界面的框架 只关注视图层 易于上手,还便于与第三方库或即有项目整合 M...
    ef44694b25cb阅读 894评论 0 0
  • Vue知识点的总结 Vue中的指令及其基本语法: 第一步:从官网上下载vue开发版本的js文件 引入js文件 ...
    往前走莫回头_2cd6阅读 1,490评论 0 1