IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vue路由守卫 -> 正文阅读

[JavaScript知识库]Vue路由守卫

1.路由守卫

先说我的理解,路由守卫类似一个安保系统,要向进入园区,必须经过安保的同意,同意了就放行,继续操作,那么路由守卫也是一样的

包含 全局守卫 独享守卫 组件内守卫

1.1 全局守卫

应用于整个页面,处理对应的事件,分为前置守卫和后置守卫

  • to:进入到哪个路由去

  • from:从哪个路由离开

  • next:路由的控制参数,常用的有next(true)和next(false)

<!--1.定义组件-->
let comA ={
    data(){},
    template:``,
    created(){
    this.id = this.$route.params.id
    this.username = this.$route.params.username
    }
}
<!--2.定义路由-->
let router = new VueRouter({
    routes:
 ? ? [
 ? ?  {path:'/user:id/username/:username',component: comA}
 ? ? ]
})
<!--4.绑定路由全局守卫 前置-->
router.beforeEach((to,from,next)=>{
    console.log('前置',to,from)
    next();
})
<!--绑定路由全局守卫 后置-->
router.afterEach((to,from)=>{
    console.log('后置',to,from);
})
<!--3.路由注册-->
router

1.2 路由独享守卫

该路由有自己的守卫任务,如该生产车间有自己的任务,保证自己车间的任务能够完成

官方的定义是:你可以在路由配置上直接定义beforEnter守卫,这些守卫和全局前置守卫的方法和参数是一样的

参数:
beforeEnter(to,from,next)
<!-- to 路由对象,要进入的目标
<!-- from 当前导航正要离开的路由
<!-- next 是否在守卫之后进行跳转-->
next()  所指路由
next(false) 中断当前路由
next('route') 跳转知道路由
next('error') 跳转错误路由
直接在配置信息上定义路由
let router = new VueRouter({
    routes:
        [
            path: '/user:id/username/:username',
            component:comA,
            name:'coma'
            beforeEnter:(to,from,next){
                next();
            },
            {
                path:'/comA',
                component:comB
            }
        ]
})
?
let vm = new Vue({
    el:'#app',
    data:{},
    methods:{},
    created(){},
    router
})

1.3 组件内守卫

通常用来禁止用户还未保存的情况下突然离开

beforeRouteEnter

路由进入之前
beforeRouteEnter(to,from,next){
    next()
}
路由更新之前
beforeRouteUpdate(to,form,next){
    this.id = to.params.id
    this.username = to.params.username
    next()
}
beforeRouterLeave(to,from,next){
    
}

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-30 11:54:58  更:2021-08-30 11:55:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 12:57:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码