美文网首页
路由守卫

路由守卫

作者: 回忆不死我们不散 | 来源:发表于2020-05-15 19:39 被阅读0次

本地环境安装路由插件vue-router:

  cnpm install vue-router --save-dev 

*没有安装淘宝镜像的可以将 cnpm 替换成 npm
安装淘宝镜像 :

 npm install -g cnpm --registry=https://registry.npm.taobao.org

配置
两种配置方法:在main.js中 || 在src/router文件夹下的index.js中

在src/router/index.js中的
1.引入

import Vue from 'vue'
import Router from 'vue-router'

Router是自定义的名字,这里叫这个名字后,下边都要用到的
2.使用/注册

Vue.use(Router)

3.配置
首先在定义路由的时候就需要多添加一个自定义字段isLogin:true ,用于判断该路由的访问是否需要登录。如果用户已经登录,则顺利进入路由,
否则就进入登录页面。

export default new Router({
  routes: [
    {
      path: '/',
      name: 'home',
      component: Home,
      meta:{
        isLogin:true    // 添加该字段,表示进入这个路由是需要登录的
      }//路由元
    },{
      path:"/login",
      name:"login",
      component:Login
    }
  ]
})

4.引入路由相对应的地址

import Home from "@/components/home"
import Login from "@/components/login"

5在src/router中创建permission.js文件
引入:

import router from "./index.js"

在路由跳转之前 我们主要是利用vue-router提供的钩子函数beforeEach()对路由进行判断。

// 路由守卫

router.beforeEach((to,from,next)=>{
        if(to.matched.some(res=>res.meta.isLogin)){//判断是否需要登录
            if (sessionStorage['username']) {
                next();
            }else{
                next({
                    path:"/login",
                    query:{
                        redirect:to.fullPath
                    }
                });
            }

        }else{
            next()
        }
    });

export default router;

to 表示将要跳转到的组件 (目标组件)
console.log(from); //(源组件)
next();
next 是一个函数
next() 进入下一个组件的钩子函数
next(false) 阻止跳转 中断导航
next("/login") 进入指定的组件的钩子函数

引用:https://www.jianshu.com/p/22c54f0830c9

判断路由中是否显示高亮
判断路由中是否有某一项如果有加添加类名


image.png

列表高亮选中


image.png

相关文章

  • vue的路由守卫

    路由守卫分3种:全局守卫路由独享守卫组件内的路由守卫 1.全局守卫:beforeEachbeforeResolve...

  • 路由守卫

    路由守卫分为三种 全局守卫: 路由独享守卫卸载route里 组件内守卫:写在组件配置对象里

  • [VUE]动态的更新页面的Title

    首先可以用路由守卫 + VueRouter来实现路由守卫相关文档1.main.js里加入路由守卫 // 页面修改时...

  • vue学习笔记(八)导航守卫(全局守卫,路由独享,组件内守卫)

    导航守卫-全局守卫 导航守卫-路由独享 导航守卫-组件内守卫

  • vue-路由导航守卫&异步组件

    导航守卫包括全局导航守卫、路由守卫、组件局部守卫 全局导航守卫 在全局导航守卫中,每次路由的跳转他们三个都会被触发...

  • Vue嵌套路由和路由守卫

    嵌套路由 路由守卫

  • vue路由守卫

    概念 路由守卫,官网也叫导航守卫,所谓导航,就是路由正在发生变化 路由守卫,主要就是用来通过跳转或取消的方式守卫导...

  • vue学习(52)vue-router(4)

    路由守卫作用:对路由进行权限控制分类:全局守卫、独享守卫、组件内守卫全局守卫(我们可以在meta中配置一些信息) ...

  • 路由

    全局守卫就是每一个路径进来都会经过这个全局守卫的处理 单路由守卫就是把守卫指定给某一个路由 组件内路由就是把守卫放...

  • vue-router 常见导航守卫

    全局守卫vue-router全局有三个守卫 路由独享守卫如果你不想全局配置守卫的话,你可以为某些路由单独配置守卫 ...

网友评论

      本文标题:路由守卫

      本文链接:https://www.haomeiwen.com/subject/abehohtx.html