首页 > 其他分享 >react路由6登录拦截

react路由6登录拦截

时间:2023-08-01 10:45:29浏览次数:35  
标签:登录 element react token path import 拦截 路由

自定义登录拦截组件:

// 路由守卫
// 判断token是否存在,如果存在跳转页面,不存在返回登录页面
import { Navigate } from 'react-router-dom'
 
const getToken = () => {
    return sessionStorage.getItem("token")
}
 
function AuthRouter({children}){
    // 获取token
    const token = getToken()
    // 判断token是否存在
    if(token){
        console.log(children);
        return <>{children}</>
    }else{
        return <Navigate to={'/login'}></Navigate>
    }
}
 
export { AuthRouter }

路由文件夹下引入自定义拦截组件:

包裹需要做拦截的组件就可以实现登录拦截:

import { Navigate, createBrowserRouter as createRouter } from "react-router-dom";
import App from '../App'
import Index from '../pages/Index'
import Tuo from '../pages/Body(1)'
import Login from '../pages/Login'
//做登录拦截
import { AuthRouter } from "./AuthRouter";
const router=createRouter([
    {
        path:'/',
        element:<Navigate to="/login"/>
    },
    {
        path:'/app',
        element:<AuthRouter><App/></AuthRouter>,
        children:[
            {
                path:'index',
                element:<Index/>
            },
            {
                path:'tuo',
                element:<Tuo/>
            }
        ]
    },
    {
        path:'/login',
        element:<Login/>
    }
])
export default router

 

标签:登录,element,react,token,path,import,拦截,路由
From: https://www.cnblogs.com/wananyy/p/17595833.html

相关文章

  • react使用自定义animation实现水平效果的路由切换
    例如:A组件跳B组件 A组件:importReactfrom'react';import'./A.scss'import{useNavigate}from'react-router-dom';exportdefaultfunctionA(){letnavigate=useNavigate()return(<divonClick={()=>{l......
  • react简历案例--前后端
    express:下载 mongoose 7版本+配置cors1:创建module文件夹(db.js、module.js)连接mongodb数据库:constmongoose=require("mongoose")mongoose.connect("mongodb://127.0.0.1:27017/zg6_zk3_2204_koa").then(()=>{console.log("连接成功");})mod......
  • vue中使用provide和inject依赖注入组件之间进行父子组件传值(也适用于嵌套路由)
      父组件中:provide:function(){return{reload:this.reload//父组件中的方法}}子组件中:inject:['reload']使用:this.reload()//也可传入参数......
  • 路由工具
    ACL列表ACL访问控制列表,即用于流量的匹配与控制,但也能够用于匹配路由条目。前缀列表与AC的区别1)ACL无法匹配路由掩码2)ACL无法匹配精确的路由如:存在两个路由192.168.1.0/24,192.168.1.0/16如果用ACL只匹配192.168.1.0/16的话应该这么写:[AR1]acl2000[AR1-acl-basic-2000]rulepermit......
  • URL函数的使用(支持正则表达式)、分组、反向解析、Django2的转换器、路由分发、伪静态的
    url('test',views.test),url函数的第一个参数是支持正则表达式的如果匹配到一个路由,就不在往下匹配,直接执行路由对应的视图函数 http://127.0.0.1:8000/test/是django默认设置的,django会先拿着test去匹配,如果匹配不到,它会自动加一个斜杠再次去匹配 去浏览器器搜索textadd只......
  • Cilium系列-9-主机路由切换为基于 BPF 的模式
    系列文章Cilium系列文章前言将Kubernetes的CNI从其他组件切换为Cilium,已经可以有效地提升网络的性能.但是通过对Cilium不同模式的切换/功能的启用,可以进一步提升Cilium的网络性能.具体调优项包括不限于:启用本地路由(NativeRouting)完全替换KubeProxyI......
  • url函数的使用,无名分组和有名分组,反向解析,django2中5种转换器,路由分发,伪静态的概
    url函数的使用(支持正则表达式)#django1中使用的是urlurl('test',views.test),url函数的第一个参数是支持正则表达式的如果匹配到一个路由,就不在往下匹配,直接执行路由对应的视图函数#http://127.0.0.1:8000/test/是django默认设置的,django会先拿着test去匹配,如果匹配不......
  • 浅聊一下,React会不会被VUE取代?
    看到知乎上有比较多的类似问题,正好这两个框架在以往的一些项目中都有实践过,就借着本篇文章说说我个人的看法。 先摆个结论:不会,毕竟各有千秋,除非跨端框架有被更好的概念所替代,又或者App已经彻底过气了。 什么是React?什么是VUE?维基百科上的概念解释,Vue.js是一个用于创......
  • 【9.0】DRF之路由
    【一】路由的写法【1】原始写法介绍是指手动编写路由规则的方式。使用path()函数或re_path()函数来定义路由规则,并将其与对应的视图函数或类关联起来。例如假设有一个名为book的应用,它包含了一个处理图书列表的视图函数book_list,以及一个处理单个图书详情的视图函数book_......
  • 【七】DRF之路由组件
    【一】路由Routers对于视图集ViewSet我们除了可以自己手动指明请求方式与动作action之间的对应关系外还可以使用Routers来帮助我们快速实现路由信息。RESTframework提供了两个routerSimpleRouterDefaultRouter【二】使用方法【1】创建router对象,并注册视图集......