路由守卫的参数介绍

import Vue from "vue";
import VueRouter from "vue-router";
import Home from "../views/home.vue";
Vue.use(VueRouter); const routes = [
{
path: "/",
name: "Home",
component: Home,
},
{
path: "/about",
name: "About",
component: () => import("../views/About.vue"),
},
]
const router = new VueRouter({
mode: "history",
base: process.env.BASE_URL,
routes,
}); // 这是一个全局前置路由,注意是全局的前置路由
// 在每一次切换路由之前,都会触发该函数注意是之前
// 它有三个参数,
// to==>到哪一个路由,form==>来源哪一个路由,next是否允许前往某一个路由
//如果没有执行next页面将会值空白页面
router.beforeEach((to, form, next) => {
console.log("在每一次切换路由之前,都会触发该函数")
next()
}) export default router;

权限就需要路由守卫

现在我们有一个需求,如果要进入就是richtext页面;
用户user等于必须等于admin。才能够进入
否者不能够就进入页面,并提示弹窗
let user='user'
// to==>到哪一个路由,
// form ==> 来源哪一个路由,
// next是否允许前往某一个路由,如果没有执行next()这页面空白
router.beforeEach((to, form, next) => {
console.log(' to',to);
if (to.path == '/richtext') {
if (user == 'admin') {
next();
} else {
alert('你不是管理员')
}
} else {
next()
}
})

元路由meta

很多时候,我们需要将每一个路由上放置一个的信息
我们可以放在mata上
简单配置如下
{
path: "/zujian",
name: "zujian",
meta: {
user: admin,
info:'我是admin',
key:'key-value的形式'
},
component: () => import("../views/zujian.vue"),
},

全局后置路由守卫

// 全局后置路由守卫,它只有两个参数
// to==>到哪一个路由,
// form ==> 来源哪一个路由,
router.afterEach((to,form) => {
console.log('to', to, form);
console.log('form',to,form);
}) 有的小伙伴可能会说,
这个后置路由守卫都切换到自己需要的页面了。
还守卫了毛线,靠!
你这样一说还真是的,我都切换完了。
还需要你守卫吗?你一遍凉快去吧。
难道它真的没有一点儿作用了吗?
不是的你说的那样,它是有作用的;
在动态更改系统顶部的标题的时候,
就需要使用这个全局后置路由守卫 router.afterEach((to,form) => {
console.log('to', to);
console.log('form', form);
document.title=to.mata.title
})

独享路由守卫

独享路由守卫:顾名思义就是对某一个路由进行守卫
{
path: "/zujian",
name: "zujian",
component: () => import("../views/zujian.vue"),
// 独享路由~注意:没有独享后置路由
//独享只有一个
beforEnter: (to, form,next) => {
// to==>到哪一个路由,
// form ==> 来源哪一个路由,
// next 放行
}
},

组件内路由守卫

<template>
<div>
我是页面测试二
</div>
</template>
<script>
export default {
//通过路由规则进入该组件时候被调用
beforeRouteEnter (to, from, next) {
console.log('beforeRouteEnter==>to',to, );
console.log( 'beforeRouteEnter==>from',from );
// 放行,如你你不放行,路由景无法进入该页面
// 在视图上页面显示的是上一个页面哈
next();
},
//通过路由规则,离开组件的时候被调用
beforeRouteLeave(to, from, next){
console.log('beforeRouteLeave==>',to );
console.log('beforeRouteLeave==>',from );
// 如果你不放行,路由无法离开该页面
// 在视图上始终显示该页面,因为路由没有离开
next();
}
}
</script>

vue2全局路由守卫独享路由守卫组件内路由守卫共5个的更多相关文章

  1. [Vue]导航守卫:全局的、单个路由独享的、组件级的

    正如其名,vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航.有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的. 记住参数或查询的改变并不会触发进入/离开的 ...

  2. vue 组件内的守卫

    1.beforeRouteEnter ()  // 进入该组件之前要去进行的逻辑操作, 2.beforeRouteLeave() // 离开该组件之前要去进行的逻辑操作(可清除定时器等耗用内存的变量, ...

  3. Vue路由守卫之组件内路由守卫

    ​        beforeRouteEnter,进入路由前.需要注意这里不能使用this,因为我们使用的是进入路由之前,那会组件还没创建,得不到this这个属性,所有我们只能使用过vm异步语句来让 ...

  4. Vue(基础八)_导航守卫(组件内的守卫)

    一.前言 主要通过一个例子演示三个钩子的作用: 1.beforeRouteEnter()                                                         ...

  5. vue-router之路由钩子(组件内路由钩子必须在路由组件调用,子组件没用)

    模式 vue-router中的模式选项主要在router实例化的时候进行定义的,如下 const router = new VueRouter({ mode: 'history', // 两种类型hi ...

  6. 解决vue组件内前置路由守卫beforeRouteEnter无法获取上下文this

    问题描述 vue框架,只有在报名页面报名成功,然后自动跳转到订单详情,才弹出一个引流弹窗,其他情况均不弹出,我就想到使用vue 的组件内前置守卫beforeRouteEnter来实现.beforeRo ...

  7. vue中的路由独享守卫的理解

    1.vue中路由独享守卫意思就是对这个路由有一个单独的守卫,因为他的守卫方式于其他的凡是不太同 独享守卫于前置守卫使用方法大致是一样的 在路由配置的时候进行配置, { path:'/login', c ...

  8. Vue路由守卫之路由独享守卫

    ​ 路由独立守卫,顾名思义就是这个路由自己的守卫任务,就如同咱们LOL,我们守卫的就是独立一条路,保证我们这条路不要被敌人攻克(当然我们也得打团配合) 在官方定义是这样说的:你可以在路由配置上直接定义 ...

  9. vue组件独享守卫钩子函数参数详解(beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave)

    一样的和前面路由钩子类似的步骤 首先在demo下面的components下面新建一个test.vue组件 test组件代码 <template> <div class="t ...

  10. VUE温习:nextTick、$refs、嵌套路由、keep-alive缓存、is特性、路由属性用法、路由钩子函数

    一.$nextTick 1.vue的dom执行异步更新,只要观察到数据变化,vue将开启一个队列,并缓冲在同一事件循环中发生的所有数据改变. 2.vue.$nextTick(cb),数据发生变化,更新 ...

随机推荐

  1. Open Harmony移植:build lite编译构建过程

    摘要:本文介绍了build lite 轻量级编译构建系统编译构建过程,调用依赖关系等等. 本文分享自华为云社区<移植案例与原理 - build lite编译构建过程>,作者: zhushy ...

  2. 移动应用中的第三方SDK隐私合规检测,早知道

    摘要: 在移动应用隐私合规检测中,第三方SDK隐私声明由于其展现位置展现形式的多样性,自动化提取与解析是比较困难的任务. 本文分享自华为云社区<移动应用中的第三方SDK隐私合规检测>,作者 ...

  3. 2023年iOS App Store上架流程详解(上)

    ​ 很多开发者在开发完iOS APP.进行内测后,下一步就面临上架App Store,不过也有很多同学对APP上架App Store的流程不太了解,下面我们来说一下iOS APP上架App Store ...

  4. 如何注册appuploader账号​

    如何注册appuploader账号​ 我们上一篇讲到appuploader的下载安装,要想使用此软件呢,需要注册账号才能使用,今​ 天我们来讲下如何注册appuploader账号来使用软件.​ 1.A ...

  5. Java SpringBoot Bean InitializingBean 项目初始化

    Spring中有两种类型的Bean,一种是普通Bean,另一种是工厂Bean,即FactoryBean.工厂Bean跟普通Bean不同,其返回的对象不是指定类的一个实例,其返回的是该工厂Bean的ge ...

  6. PS 独立集中标识下修改项目采购类型增强

    1.当物料独立集中标识为2,采购类型通过BAPI:BAPI_NETWORK_COMP_ADD,type_of_pur_resv传入'7',则报错"组件分配并不是未销售订单或项目库存而设的&q ...

  7. 如何优雅的在 Word 中添加漂亮的代码?

    Step 01 第一步,在编程软件里找到你想要放进Word文档里的代码,复制下来. Step 02 第二步,打开Notepad++,将代码直接粘贴. Step 03 第三步,这个时候的代码是没有任何格 ...

  8. Codeforces Round #716 (Div. 2) A ~ D 个人题解

    补题链接:Here 1514A. Perfectly Imperfect Array 题意:给定长度为 \(n\) 的 \(a\) 序列,请问是否存在子序列积不存在平方根 思路:子序列的话,一个元素也 ...

  9. 电缆厂 3D 可视化管控系统 | 图扑数字孪生

    近年来,我国各类器材制造业已经开始向数字化生产转型,使得生产流程变得更加精准高效.通过应用智能设备.物联网和大数据分析等技术,企业可以更好地监控生产线上的运行和质量情况,及时发现和解决问题,从而提高生 ...

  10. SpringBoot-mybatisplus-模糊查询

    模糊查询如何实现如下案例中两种实现方法 第一种:利用QueryWrapper.like自己实现. 第二种:使用@TableField(condition = SqlCondition.LIKE)实现. ...