Vue 路由导航守卫

一:全局守卫

(1) router.beforeEach

beforeEach((to, from, next) => {}) 接收三个参数,在路由切换成功之前调用

  • to 将要进入的目标路由,要去哪里

  • from 将要离开的路由,从哪里来

  • next 跳转路由,next(false) 中断导航

// router -> index.js
router.beforeEach( (to, from, next) => {
// 判断你要访问的路由页面路径是否是'login',若是,则放行
if(to.path == '/login') return next();
// 若不是,则跳转到'login'
next('/login')
})

(2) router.afterEach

afterEach((to, from) => {}) 接收两个参数,在路由切换成功之后调用

  • to 将要进入的目标路由,要去哪里

  • from 将要离开的路由,从哪里来

// router -> index.js
router.afterEach( (to, from) => {
// 操作
})

二:组件内守卫

(1) beforeRouteEnter

beforeRouteEnter((to, from, next) => {}) 接收三个参数,到达这个组件之前调用

  • to 将要进入的目标路由,要去哪里

  • from 将要离开的路由,从哪里来

  • next 访问组件实例、放行

export default {
data(){
return{
name:"Arya"
}
},
beforeRouteEnter(to,from,next){
next(vm=>{ // vm相当于组件中的this
alert("hello" + vm.name);
})
}
}

(2) beforeRouteLeave

beforeRouteEnter((to, from, next) => {}) 接收三个参数,离开这个组件时调用

离开这个组件时,判断是否确认离开。确认执行next();取消执行next(false),留在当前页面。

beforeRouteLeave(to,from,next){
if(confirm("确定离开此页面吗?") == true){
next();
}else{
next(false);
}
}

三:路由独享守卫

  beforeEnter

用法与全局守卫一致。只是将其写进其中一个路由对象中,只在这个路由下起作用

Vue 路由导航守卫的更多相关文章

  1. vue路由导航守卫及前置后置钩子函数参数详解

    首先构建一个测试demo如下图: 接着来探讨路由配置界面 import Vue from 'vue' import Router from 'vue-router' // import HelloWo ...

  2. 【VUE】5.路由导航守卫

    1. 功能需求 1. 当用户登陆成功后,把得到的token存到Session Storage 2. components -> Form.vue , 对预验证进行校验,如果验证不正确就跳出,如果 ...

  3. vue之路由导航守卫-全局前置守卫

    一.使用方式 全局前置守卫用于在路由配置生效之前进行一些动作,可以使用 router.beforeEach 注册一个全局前置守卫: const router = new VueRouter({ ... ...

  4. Vue的钩子函数[路由导航守卫、keep-alive、生命周期钩子]

    前言 说到Vue的钩子函数,可能很多人只停留在一些很简单常用的钩子(created,mounted),而且对于里面的区别,什么时候该用什么钩子,并没有仔细的去研究过,且Vue的生命周期在面试中也算是比 ...

  5. vue 路由导航白话全解析

    这里先放上官网的教程和说明:点击这里,vue导航守卫官方文档 路由守卫 路由守卫说白了就是路由拦截,在地址栏跳转之前 之后 跳转的瞬间 干什么事 全局守卫 全局守卫顾名思义,就是全局的,整个项目所有路 ...

  6. vue router 导航守卫生命周期

    导航守卫 导航守卫主要用来通过跳转或取消的方式守卫导航.有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的.(记住参数或查询的改变并不会触发进入/离开的导航守卫.你可以通过观察$r ...

  7. Vue 路由导航解析流程

    Vue Router完整的导航解析流程

  8. vue关于导航守卫的几种应用场景

    beforeEach 该钩子函数主要用来做权限的管理认证 router.beforeEach((to, from, next) => { if (to.matched.some(record = ...

  9. Vue之七导航守卫

    { path:'/',component:Recommend,beforeEnter: (to, from, next) => { console.log(to); ajax('get','/a ...

  10. vue路由\导航刷新后:ative\localStorage\url截取参数

    <el-menu :default-active="$route.path" router mode="horizontal"> <el-me ...

随机推荐

  1. Django基础篇 04-模型类注册到后台Django Admin中

    一.django自带的admin的url地址 urls.py文件中 from django.contrib import admin from django.urls import path from ...

  2. 笔记:map函数方法映射

    ------------恢复内容开始------------ map函数可以对后端接口返回一个数组 map存在一个参数时: map存在三个参数时: 语法: array.map(function(cur ...

  3. AX2012 快速清空整个log表数据

    如果当一个log表的数据非常大的时又需要清理时,如果允许删除全部数据,在AX里,可以 将log表的TableType调整为[TempDB], 保存同步后再将TableType设置回[Regular]即 ...

  4. 上传路径Class替换无效

    路径配置文件使用的常量,其它文件使用路径时,编译class时为静态常量信息,改变不同的路径常量则不生效

  5. hdu4585 Treap与名次树/STL map(C/C++)

    hdu4585 题目地址:https://acm.dingbacode.com/showproblem.php?pid=4585 Shaolin Time Limit: 3000/1000 MS (J ...

  6. 第11章 配置ASP.NET Core应用程序(ASP.NET Core in Action, 2nd Edition)

    本章包括 从多个配置提供程序加载设置 安全存储敏感设置 使用强类型设置对象 在不同的宿主环境中使用不同的设置 在本书的第1部分中,您学习了ASP.NET Core应用程序启动和运行的基础知识,以及如何 ...

  7. 工控小工具 snmp 、opc ua 、modbus 、tcp、bacnet 开发环境Net6.0

    下载地址 https://files.cnblogs.com/files/blogs/745639/net6.0-windows.rar?t=1674114312

  8. RocketMQ4.x本地源码部署教程

    安装前提条件(推荐) 64bit OS, Linux/Unix/Mac (Windows不兼容)64bit JDK 1.8+; 快速开始 http://rocketmq.apache.org/docs ...

  9. Two Sum:给出一个整数数组,返回两个数的下标值,令其和等于一个指定的目标值 #Leetcode

    // Given nums = [2, 7, 11, 15], target = 9, // Because nums[0] + nums[1] = 2 + 7 = 9, // return [0, ...

  10. vite+vue3使用unplugin-auto-import 无需手动引入api!

    近期了解到unplugin-auto-import这个插件 用途是无需每个组件内重复的引入vue vue-router等内置方法 下面举个例子 <script setup> import ...