当前位置: 首页 > 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.xdnf.cn/news/1316215.html

相关文章:

  • Android 对话框 - 基础对话框补充(不同的上下文创建 AlertDialog、AlertDialog 的三个按钮)
  • WPFC#超市管理系统(6)订单详情、顾客注册、商品销售排行查询和库存提示、LiveChat报表
  • C#WPF实战出真汁13--【营业查询】
  • [辩论] TDD(测试驱动开发)
  • ZKmall开源商城的移动商城搭建:Uni-app+Vue3 实现多端购物体验
  • Collections.synchronizedList是如何将List变为线程安全的
  • Trae 辅助下的 uni-app 跨端小程序工程化开发实践分享
  • 李宏毅NLP-11-语音合成
  • 在 Element UI 的 el-table 中实现某行标红并显示删除线
  • 【PHP】Hyperf:接入 Nacos
  • Centos中内存CPU硬盘的查询
  • vscode无法检测到typescript环境解决办法
  • OpenCV 图像处理核心技术:边界填充、算术运算与滤波处理实战
  • 大模型应用发展与Agent前沿技术趋势(中)
  • JVM常用工具:jstat、jmap、jstack
  • 【Linux】IO多路复用
  • 17-线程
  • Python自学10-常用数据结构之字符串
  • Python异常、模块与包(五分钟小白从入门)
  • 文件快速复制工具,传输速度提升10倍
  • riscv中断处理软硬件流程总结
  • 【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day6
  • Vue3 中的 ref、模板引用和 defineExpose 详解
  • 安卓14系统应用收不到开机广播
  • 【Java后端】Spring Boot 集成 MyBatis-Plus 全攻略
  • 大模型算法岗面试准备经验分享
  • (机器学习)监督学习 vs 非监督学习
  • 智能制造——解读37页 案例分享灯塔工厂解决方案【附全文阅读】
  • 电子电气架构 --- 自动驾驶汽车的下一步发展是什么?
  • LeetCode 分类刷题:2962. 统计最大元素出现至少 K 次的子数组