首页 > 编程语言 >Java登陆第四十天——Router路由守卫

Java登陆第四十天——Router路由守卫

时间:2024-04-07 18:44:52浏览次数:15  
标签:vue Java next 守卫 router Router path 路由

路由守卫就是在切换页面的期间,执行的函数。
	类似于Vue的钩子函数
	类似于Setvlet的Filter(过滤器)

路由守卫

路由守卫,就是在路由切换期间执的函数。

由vue-router提供的两个常见守卫(函数):
全局前置守卫beforeEach和全局后置守卫afterEach

语法格式如下:

/*
全局前置守卫beforeEach	路由切换前执行的函数
	to:目的路由对象
	from:当前路由对象
	next:是否放行函数。 next()放行 next('/URL')重定向
*/
router.beforeEach( (to, from, next)=>{} )

/*
全局后置守卫beforeEach	路由切换后执行的函数
	to:目的路由对象
	from:当前路由对象
*/
router.afterEach( (to, from)=>{} )

路由守卫的特点:

  1. 前置守卫的箭头函数中,next是可选的。

    • 如果使用next,要确保next会执行。
    • next重定向,依旧会触发路由前置守卫。
  2. 前置守卫的箭头函数中,可以允许有两种返回值。

    • 布尔类型,T为放行,F为不放行。
    • 一个路由地址。(等价于router.push())
  3. 如果不使用next,就一定要使用返回值。反之亦然。

  4. 前置守卫默认拦截路由切换。

  5. 这两个守卫由vue-router提供,router对象调用。

  6. 路由守卫,在路由配置文件中编写。

栗子

testRouter.js

import {createRouter, createWebHashHistory} from 'vue-router'


import Left from '../components/left.vue'
import Right from '../components/right.vue'


const testRouter = createRouter({
    history: createWebHashHistory(),
    routes: [
        {path: '/left', component: Left},
        {path: '/right', component: Right}
    ]
});

testRouter.beforeEach( (to,from)=>{
    console.log("---触发前置守卫---");
    console.log("目的路由:"+to.path+"当前路由:"+from.path);
    return true;
} )
testRouter.afterEach( (to, from) =>{
    console.log("---触发后置守卫---");
    console.log("目的路由:"+to.path+"当前路由:"+from.path);
}  )

//默认导出,在需要的地方导入该配置文件即可。
export default testRouter;

App.vue

<script setup>
import {useRouter} from 'vue-router'

let router = useRouter();

let right = () => {
  router.push('/right')
}
</script>

<template>
  <router-link to="/left">左</router-link>
  丨
  <button @click="right()">右</button>
  <router-view></router-view>
  <h3>APP尾部</h3>
</template>

<style scoped>
</style>

效果展示
image

标签:vue,Java,next,守卫,router,Router,path,路由
From: https://www.cnblogs.com/rowbed/p/18119680

相关文章

  • mac 添加静态路由
    在macOS上,您可以使用`route`命令来添加一次性的静态路由。以下是配置一次性静态路由的一般步骤:1.**确定目标网络和下一跳地址:**首先,确定您要添加的静态路由的目标网络和下一跳地址。2.**使用routeadd命令添加静态路由:**打开终端,执行以下命令:```sudoroute-na......
  • Java集合常用类及使用特点
    Java集合框架提供了一组接口和类,用于存储和操作对象集合。它包括常用的数据结构,如列表、集合、映射等,以及对应的实现类。主要接口和类:List(列表):允许重复元素,按照插入顺序存储。常用实现类有ArrayList(查询快、增删慢)和LinkedList(增删快、查询慢)。ArrayListvs.LinkedList:Ar......
  • 自制小钢琴(Java)
    简易版小钢琴packagePianoGame;importjavax.swing.*;importjava.awt.*;publicclassPianoGameextendsJFrame{Buttonbutton=null;//定义两个参数,分别为宽,高publicstaticfinalintWIDTH=700;publicstaticfinalintHEIGHT=450;......
  • Java的异常机制
    异常机制三种类型检查型异常:程序员无法预见的运行时异常:在编译时会被忽略错误ERROR:错误在代码中被忽略,在编译时检查不到异常处理机制抛出异常捕获异常异常处理的五个关键字:try,catch,finally,throw,throws以下为这五个关键词的使用方法:packageexception;publicclassD......
  • 工业4g路由器联网后迅速掉线是什么原因?
    工业4G路由器连接上网后迅速掉线可能是由多种因素造成的。以下是一些建议的检查和解决步骤: 1、信号问题:信号强度:检查工业路由器信号强度指示灯,如果信号弱,尝试移动路由器位置或添加外部天线来增强信号。网络拥堵:如果路由器信号较强但仍然频繁掉线,可能是因为网络拥堵。尝试减少......
  • Java商城免费搭建 VR全景商城 saas商城 b2b2c商城 o2o商城 积分商城 秒杀商城 拼团商
     1.涉及平台平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2.核心架构SpringCloud、SpringBoot、Mybatis、Redis3.前端框架VUE、Uniapp、Bootstrap/H5/CSS3、IOS、Android、小程序4.核心思想分布式、微服务......
  • java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ MybatisPlus
    鸿鹄工程项目管理系统SpringCloud+SpringBoot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统项目背景一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的提升提出了更高的要......
  • java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ MybatisPlus
     鸿鹄工程项目管理系统SpringCloud+SpringBoot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统项目背景一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的提升提出了更高的......
  • java中LocalDate和Date的应用
     LocalDate和Date的区别:Java中Date与LocalDate、LocalDateTime之间的区别及相互转换_localdate和date区别-CSDN博客​​​​​​​应用:获取n天前的时间数组/***根据time获取time天内时间list**@paramtime时间跨度14-半个月返回15条*......
  • 如何在JavaScript中解析S表达式
    S表达式是Lisp编程语言家族的基础。在本文中,我将逐步向您展示如何创建一个简单的S表达式解析器。这可以作为Lisp解析器的基础。Lisp是实现最简单的语言之一,创建解析器是第一步。我们可以使用解析器生成器来完成这项任务,但自己编写解析器会更容易。我们将使用JavaScript。(本文内......