react 路由权限

TypeScript 复制代码
import {  Spin } from "antd";
import { Suspense } from "react";
import { Navigate } from "react-router-dom";
import KeepAlive from 'react-activation'
function AuthRoute(props: any) {
    const spinStyle = {
        width: '100%',
        height: '100%',
        display: 'flex',
        alignItems: 'center',
        justifyContent: 'center'
    }
    const token = localStorage.getItem("token");

    let template = <Navigate to='/' replace></Navigate>;

    if (token || !props.auth) {
        if (props.id) {
            template = <KeepAlive autoFreeze={false} when={true} key={props.id} id={props.id}>
                <Suspense fallback={<div style={spinStyle}><Spin /></div>}>{props.children}</Suspense>
            </KeepAlive>
        } else {
            template = <Suspense fallback={<div style={spinStyle}><Spin /></div>} >{props.children}</Suspense>
        }

    }
    return template
}
export default AuthRoute

使用方式

相关推荐
光影少年4 分钟前
RN首屏加载速度优化全方案
react native·react.js·掘金·金石计划
小妖现世4 分钟前
前端面试复习笔记:React 高频题 + JS 手写题
前端
holidaypenguin5 分钟前
Windows 本地 HTTPS 证书生成指南
前端
酷酷的逗逗乐8 分钟前
前端转 Agent 开发 · 第六节
前端·程序员
回家吃饭去吧11 分钟前
WebAssembly 深度解析:前端性能的最后一块拼图
前端
爱勇宝11 分钟前
没有 Fn 键关触控板?我做了一个双击即用的 Windows 小工具
前端·后端·程序员
尤小小24 分钟前
Vite-SSG 实践:Vue项目预渲染落地完整方案
前端·vue.js
默_笙30 分钟前
🍕 AI 的嘴巴装了水管(上):从"等它说完"到"边说边听"的流式输出指南
前端·javascript
lichenyang45331 分钟前
让 VK 小程序调用 HarmonyOS 原生能力:壳子 SDK 的实现思路
前端
梨想橙汁41 分钟前
Vue3 组合式 API 深度解析:ref/reactive 响应式,计算属性与侦听器
前端·vue.js