当前位置: 首页 > news >正文

(一)React企业级后台(Axios/localstorage封装/动态侧边栏)


文章目录

  • 项目地址
  • 一、Axios和Localstorage封装
    • 1.1 Axios封装
      • 1.1 基础请求头
      • 1.2 后端返回结果和错误封装
      • 1.3 requests的封装
      • 1.4 response的封装
      • 1.5 发起请求
    • 1.2 LoacalStorage封装
      • 1. 增删改查获取localstorage
    • 1.3 配置
      • 1.1 配置开发/生产环境
      • 1.2 使用环境变量
  • 二、页面
    • 2.1 登录页面
      • 1. 登录所需要的请求
      • 2. 发起登录的方法
      • 3. 登录页面
    • 2.2 动态侧边栏(重点)
      • 1. zustand存储用户状态和菜单
      • 2. 登录后获取菜单(token和权限分离)
        • 补充:RBAC毫秒生效
      • 3. 根据返回值动态生成菜单
    • 2.3 增加部门模态框(重点)
      • 1. 父控子的弹窗
      • 2. 子类使用useImperativeHandle
      • 3. 删除二次确认


项目地址

  • 教程作者:
  • 教程地址:
  • 代码仓库地址:
  • 所用到的框架和插件:
dbt 
airflow

一、Axios和Localstorage封装

1.1 Axios封装

1.1 基础请求头

  • 基础请求头只有最简单的头部,之后可以根据需求在RequestConfig里添加

在这里插入图片描述

1.2 后端返回结果和错误封装

  • 根据后端的返回结果对响应进行统一的封装
// 基础响应类型定义(与后端统一)
export interface BaseResponse<T = any> {code: number; // 业务状态码:200成功,401未授权,403权限不足等data: T;      // 业务数据message: string; // 提示信息requestId?: string; // 请求唯一标识(用于问题排查)
}
  • 错误请求的封装,如果后端已经将错误信息进行了统一处理,就不需要
    在这里插入图片描述

1.3 requests的封装

  • 请求的拦截器,添加jwt token,多租户的tenantId,以及traceID
    在这里插入图片描述

1.4 response的封装

  • 开发环境的traceID关联
  • 业务状态码处理
  // 响应拦截器:关联traceIdinstance.interceptors.response.use((response: AxiosResponse<BaseResponse>) => {const { config, data } = response;const { url, method } = config;const traceId = 
http://www.lryc.cn/news/623796.html

相关文章:

  • iSCSI服务配置全指南(含服务器与客户端)
  • JMeter(进阶篇)
  • LeetCode算法日记 - Day 13: 前缀和、二维前缀和
  • es下载、安装、部署以及集成和mysql数据同步
  • **守护进程(Daemon)** 是一种在后台运行的特殊进程
  • 为什么神经网络在长时间训练过程中会存在稠密特征图退化的问题
  • Linux中聚合链路与软件网桥配置指南
  • 深入了解linux系统—— 线程控制
  • AI 编程在老项目中的困境与改进方向
  • 【Linux | 网络】高级IO
  • 63.不同路径
  • 分治-归并-315.计算右侧小于当前元素的个数-力扣(LeetCode)
  • C++ vector的使用
  • C语言(12)——进阶函数
  • 北京JAVA基础面试30天打卡12
  • 语音转文字,如何提升内容创作效率?
  • 智能汽车领域研发,复用云原始开发范式?
  • WebSocket--精准推送方案(二):实时消息推送-若依项目示例
  • 在职老D渗透日记day19:sqli-labs靶场通关(第26a关)get布尔盲注 过滤or和and基础上又过滤了空格和注释符 ‘)闭合
  • 【架构师从入门到进阶】第五章:DNSCDN网关优化思路——第十一节:网关安全-对称与非对称加密
  • 告别“测试滞后”:AI实时测试工具在敏捷开发中的落地经验
  • 【165页PPT】锂电池行业SAP解决方案(附下载方式)
  • 自动驾驶中的传感器技术34——Lidar(9)
  • 定时器中断点灯
  • 记一次安装OpenStack(Stein)-nova报错问题解决
  • 42 C++ STL模板库11-容器4-forward_list
  • 利用标准IO实现寻找文件中字符出现最多次数
  • Opencv 形态学与梯度运算
  • python的软件工程与项目管理课程组学习系统
  • 【LeetCode题解】LeetCode 33. 搜索旋转排序数组