您现在的位置是:首页 >学无止境 >Vue中的导航守卫网站首页学无止境

Vue中的导航守卫

码农小白123 2023-05-25 16:00:02
简介Vue中的导航守卫

router官网-导航守卫
导航守卫常用的主要有三种:全局前置守卫(beforeEach)、路由独享守卫(beforeEnter)、组件内守卫(beforeRouteEnter)

路由独享守卫

在路由配置上直接定义 beforeEnter 守卫

<body>
<div id="app">
    <h1>欢迎使用路由</h1>

    <router-link to="/login">登陆</router-link>
    <router-link to="/reg">注册</router-link>

    <router-view></router-view>
</div>

<script>
    //1.定义组件的template模版
    var login={template:'<div><h1>登陆组件</h1></div>'}
    var register={template:'<div><h1>注册组件</h1></div>'}
    //2.定义路由:创建全局路由对象
    var router=new VueRouter({
        mode: 'history',
        routes:[
            {path:'/login', name:'login', component:login},
            {
                path:'/reg',
                name:'reg',
                component:register,
                /**
                 * 守卫:拦截,类似于javaweb中的filter,springmvc中拦截器
                 * 全局守卫:所有路由在导航时都会进行拦截
                 * 路由独享守卫:只有进入此路由时,会进行拦截
                 * beforeEnter是一个函数
                 * 此函数有三个参数
                 * 1.to 目的路由对象
                 * 2.from 源路由对象
                 * 3.next 此参数是一个函数,决定是否放行还是拦截
                 */
                beforeEnter:(to,from,next) =>{
                        console.log('到哪去:',to);
                        console.log('从哪来:',from);
                        //放行
                        // next()
                        //拦截,在next方法中传入参数,参数为将要跳转的路由路径字符串
                        next({name: 'login'});
                }
            }

        ]
    })
    new Vue({
        el: '#app',
        //3.在Vue对象中注册路由对象
        router
    })
</script>
</body>

在这里插入图片描述

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。