美文网首页
路由守卫

路由守卫

作者: 这世间好折磨人 | 来源:发表于2022-03-28 14:33 被阅读0次

(1)、全局路由守卫的 信息页面配置

{    path: "/cart", //路径                                                                                                                           name: "Cart", // 路由别名 不是必填项 可以不写                                                                       component: Cart, // 要显示的页面组件                                                                                           meta:{                                                                                                                                                          needLogin:true, //是否需要守卫                                                                                                            title:'购物车', //菜单名字                                                                                                                        icon:'cart'   //图标   

            } 

},

(2)、全局守卫    ( index.js  里面有解构只需要修改一下就可以了 )

to 目标路由    到哪去            from 当前路由  从哪来

router.beforeEach((to,from)=>{ 

                            console.log("全局守卫-to:",to) 

                            let {needLogin} = to.meta 

                            if(needLogin){    //判断 true 的页面需要进行守卫  门卫 是否需要上班                                if(!localStorage.isLogin){        //判断  有没有资格进入页面  未登录 进来   门卫看见你没带工牌 给我站住 登记        // 已经登录 不管          门卫看见你 带着有工牌 就不管了       

                            return `/login/?toPath=${to.fullPath}`   

}})

export default router;

(3)、单个路由守卫

{    path: "/cart", //路径                                                                                                                                 name: "Cart", // 路由别名 不是必填项 可以不写                                                                             component: Cart, // 要显示的页面组件                                                                                   beforeEnter: (to, from, next) => {                                                                                                                     // 已登录 跳转到 购物车                                                                                                                         // 未登录 跳转到 登录界面                                                                                                                     // 登录状态如何表示                                                                                                                             // 登录状态 在哪获取                                                                                                                             // 登录界面 发起 登录请求 根据 返回的结果 来标记登录状态                      console.log(localStorage.isLogin, window.play);                                                                                 let {fullPath}  = to                                                                                                                                 if (localStorage.isLogin) {                                                                                                                       next();                                                                                                                                         }else {                                                                                                                                                       console.log(this) //undefined 因为这个时候 路由对象 vue实例还没创建                                               next(`/login/?toPath=${fullPath}`);                                                                                                       // this.$router.push("/login") 不能用                                                                                             }                                                                                                                                     console.log("要去哪 to:", to); // 目标路由信息                                                                 console.log("从哪来 from:", from); // 当前路由/从哪来路由信息                                                             console.log("next:", next); //下一步   

        }, 

},

(3)、组件级守卫

// 跟methods: {}等同级别书写,组件路由守卫是写在每个单独的vue文件里面的路由守卫                                                                                               beforeRouteEnter (to, from, next) {                                                                                  // 注意,在路由进入之前,组件实例还未渲染,所以无法获取this实例,只能通过vm来访问组件实例                                                                                       next(vm => {})                                                                                                }                                                                                                      beforeRouteUpdate (to, from, next) {                                                                             // 同一页面,刷新不同数据时调用,                                                                 }                                                                                                    beforeRouteLeave (to, from, next) {                                                                             // 离开当前路由页面时调用                                                                                   } 

相关文章

  • 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/fnsgdrtx.html