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

使用方式

相关推荐
dly_blog2 分钟前
Vue 组件通信方式大全(第7节)
前端·javascript·vue.js
枫叶丹411 分钟前
ModelEngine应用编排创新实践:通过可视化编排构建大模型应用工作流
开发语言·前端·人工智能·modelengine
郭小铭13 分钟前
将 Markdown 文件导入为 React 组件 - 写作文档,即时获取交互式演示
前端·react.js·markdown
JAVA+C语言14 分钟前
CSS 继承:核心概念 + 实用解析
前端·css
橙某人15 分钟前
LogicFlow 交互新体验:告别直连,丝滑贝塞尔轨迹实战!🍫
前端·javascript·vue.js
林太白18 分钟前
docker安装以及部署node项目
前端·后端·docker
OpenTiny社区31 分钟前
【博文精读】Chrome CSS 2025年回顾
前端·css
m0_6726565438 分钟前
JavaScript性能优化实战技术文章大纲
开发语言·javascript·性能优化
菩提小狗1 小时前
第3天:基础入门-抓包&封包&协议&APP&小程序&PC应用&WEB应用|小迪安全笔记|网络安全|
前端·安全·小程序
AmsWait1 小时前
微信H5订阅消息接入实战:样式错乱、返回值解析报错?避坑指南来了
javascript·微信