vue-router路由守卫

这篇具有很好参考价值的文章主要介绍了vue-router路由守卫。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

在我们使用vue-router的时候,路由守卫就像监听器、拦截器一样,帮我们做一些鉴权等操作,vue中的路由守卫分为全局路由守卫、独享路由守卫、组件内的路由守卫

全局路由守卫: beforeEach、 afterEach

组件独享路由守卫 :beforeEnter、 beforeLeave

组件内路由守卫:beforeRouteEnter、 beforeRouteUpdate、 beforeRouteLeave

以上的路由钩子足够见名知义,全局的为路由前置守卫和路由后置守卫,组件独享路由守卫进入时守卫和离开时守卫,组件内路由守卫是前置守卫、路由更新时守卫,和离开时的后置守卫,下面将一一介绍路由守卫

写路由守卫的位置:

全局路由守卫写在:main.js中或者router文件夹下的index.js中

组件独享路由守卫写在:router下的index.js中

组件内路由守卫写在:具体的组件之中.vue文件之中

全局路由守卫

前置路由守卫

首先需要在用到路由守卫的地方明确声明{isAuth:true}

    {
        path: '/',
        name: 'HomePage',
        component: () => import('../views/HomePage.vue'),
        meta: { isAuth: true, title:'主页' },
    },

 添加前置路由守卫

//全局前置路由守卫————初始化的时候被调用、每次路由切换之前被调用
router.beforeEach((to, from, next) => {
    //如果路由需要跳转
    if (to.meta.isAuth) {
        //判断 如果localStorage本地存储是xxx的时候,可以进去
        if (localStorage.getItem('xxx') === 'xxx') {
            next()  //放行
        } else {
            // 或者定位到某个具体页面
            alert('抱歉,您无权限查看!')
        }
    } else {
        // 否则,放行
        next()
    }
})

后置路由守卫

前提是也需要在单个路由上加入meta信息,上边已经加过,可参考前置路由守卫中的meta信息,后置中没有next()

//全局后置路由守卫————初始化的时候被调用、每次路由切换之后被调用
router.afterEach((to, from) => {
    document.title = to.meta.title || '默认名'    //修改网页的title
})

组件独享路由守卫

组件独享路由守卫是某一个路由所单独共享的守卫,组件独享路由守卫需要在路由信息中配置,组件独享路由守卫只有前置,没有后置,当然有离开时的钩子函数,这里不做赘述

    {
        path: '/',
        name: 'HomePage',
        component: () => import('../views/HomePage.vue'),
        meta: { isAuth: true },
        beforeEnter: (to, from, next) => {
            if (to.meta.isAuth) { 
                if (localStorage.getItem('xxx') === 'xxx') {
                    next()  //放行
                } else {
                    // 或者跳转某一指定路由
                    alert('抱歉,您无权限查看!')
                }
            } else {
                next()  //放行
            }
        }
    },

组件内路由守卫 

首先位置方面是写在组件内部的路由守卫,写在.vue文件之中文章来源地址https://www.toymoban.com/news/detail-500265.html

//通过路由规则,进入该组件时被调用
beforeRouteEnter(to,from,next) {
  if(toString.meta.isAuth){
    if(localStorage.getTime('xxx')==='xxx'){
      next()
    }else{
      alert('无权限查看!')
    }
  } else{
    next()
  }
},
 
//通过路由规则,离开该组件时被调用 
beforeRouteLeave(to,from,next) {
 next()
}

到了这里,关于vue-router路由守卫的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Vue Router activated deactivated 路由守卫

    Vue Router activated deactivated 路由守卫

    activated 和 deactivated 是路由组件所独有的两个钩子,用于捕获路由组件的激活状态具体使用 activated 路由组件被激活时触发 deactivated 路由组件失活时触发 src/pages/News.vue 作用:对路由进行权限控制 分类:全局守卫、独享守卫、组件内守卫 全局守卫 全局守卫 meta路由源信息 独享

    2024年02月11日
    浏览(14)
  • 路由vue-router

    路由vue-router

    路由(英文:router)就是 对应关系 SPA 指的是一个 web 网站只有 唯一的一个 HTML 页面 ,所有组件的展示与切换都在这唯一的一个页面内完成。 此时,不同组件之间的切换需要通过前端路由来实现。 结论: 在 SPA 项目中,不同功能之间的切换 ,要依赖于 前端路由 来完成!

    2024年02月07日
    浏览(13)
  • 【Vue-Router】路由入门

    【Vue-Router】路由入门

    路由(Routing)是指确定网站或应用程序中特定页面的方式。在Web开发中,路由用于根据URL的不同部分来确定应用程序中应该显示哪个内容。 构建前端项目 安装依赖和路由 3. router 使用 login.vue reg.vue index.ts App.vue main.ts router-view 补充: router-view 是Vue Router提供的一个组件,用于

    2024年02月13日
    浏览(17)
  • vue-router路由懒加载

    vue-router路由懒加载

    路由懒加载指的是打包部署时将资源按照对应的页面进行划分,需要的时候加载对应的页面资源,而不是把所有的页面资源打包部署到一块。避免不必要资源加载。(参考vue项目实现路由按需加载(路由懒加载)的3种方式_小胖梅的博客-CSDN博客_vue懒加载 ) 这里有三种方式可以

    2023年04月08日
    浏览(12)
  • vue-router路由模式详解

    vue-router路由模式详解

    目录 一. vue-router(前端路由)有两种模式,hash模式和history模式 二、路由模式解析 三、两种模式的区别 1、hash模式  2、history路由 (3)popstate实现history路由拦截,监听页面返回事件 一. vue-router(前端路由)有两种模式,hash模式和history模式 1.hash 就是指 url 后面的 # 号以及后

    2024年02月03日
    浏览(20)
  • 【Vue-Router】路由传参

    【Vue-Router】路由传参

    list.json login.vue reg.vue App.vue index.ts reg.vue item?.name ,item?.price ,item?.id ,他们如果不使用可选链操作符会出现报错: \\\'__VLS_ctx.item\\\' is possibly \\\'undefined\\\'. login.vue 注意: 传递 params 参数时,若使用 to 的对象写法,必须使用 name 配置项,不能用 path 。 传递 params 参数时,需要提前在规

    2024年02月13日
    浏览(11)
  • vue-router(路由)详细教程

    路由是一个比较广义和抽象的概念,路由的本质就是 对应关系 。 在开发中,路由分为: ​ 后端路由 ​ 前端路由 后端路由 概念:根据不同的用户 URL 请求,返回不同的内容 本质:URL 请求地址与服务器资源之间的对应关系 [外链图片转存失败,源站可能有防盗链机制,建议将

    2024年02月04日
    浏览(14)
  • Vue3配置路由(vue-router)

    Vue3配置路由(vue-router)

    紧接上篇文章,vue3的配置与vue2是有所差别的,本文就讲述了如何配置,如果本文对你有所帮助请三连支持博主。 下面案例可供参考 使用npm命令进行安装 : npm install vue-router@4 完成后我们打开项目根目录下的 package.json 文件: 如下即为成功 这里创建 view目录,然后在view目录

    2023年04月12日
    浏览(16)
  • 路由,vue-router的基本用法,vue-router的常见用法$route.params、$router.push、$router.replace、$router.go

    路由,vue-router的基本用法,vue-router的常见用法$route.params、$router.push、$router.replace、$router.go

    路由(英文: router)就是 对应关系 。 SPA指的是一个web网站只有唯一的一个HTML页面, 所有组件的展示与切换 都在这唯一的一个页面内完成。此时, 不同组件之间的切换 需要通过 前端路由 来实现。 *结论:*在SPA项目中, 不同功能之间的切换 ,要 依赖于前端路由 来完成! 通俗

    2024年01月16日
    浏览(16)
  • Vue3的vue-router路由详解

    Vue3的vue-router路由详解

    这篇文章是接着【三分钟快速搭建Vue3+webpack项目】的内容做的开发,有基础的可以跳过 【三分钟快速搭建Vue3+webpack项目】,直接看以下的内容。 Vue3的vue-router路由详解: 首先安装路由依赖模块: 所需代码文件如下图: 图1   所需要的主要文件: index.html、index.js、App.vue in

    2024年02月01日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包