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

(三)黑马React(封装axioas/用户登录RTK/Token持久化/表单提交)


文章目录

  • 项目地址
  • 一、用户登录和Token
    • 1.1 axios基础封装
      • 1. 封装根域名
      • 2. 请求和响应拦截器
        • request拦截器
      • 3. 统一导出
    • 1.2 RTX管理token
      • 1. user.js用户登录reducers
      • 2. index.js统一导出reducers
      • 3. 在文件总入口应用store
      • 4. 组件里使用异步RTK
      • 6. token持久化
        • 封装token的本地存储
        • reducers里同步增加token
      • 7. 使用Token做路由权限(路由守卫)
        • 创建HOC组件
        • 使用组件
  • 二、后台页面
    • 2.1 菜单页
      • 1. 渲染菜单列表
      • 2. 点击高亮并且切换二级路由
        • 点击回调
        • onMenuClick回调函数
      • 3. 菜单高亮显示
    • 2.2 用户信息处理
      • 1. Rudex添加用户信息
      • 2. 组件中使用
      • 3. 用户退出
    • 2.3 token失效处理和api封装
      • 1. 通过axios响应拦截处理
      • 2. 封装请求
    • 2.4 频道列表渲染
      • 1. 自定义hook获取频道数据
      • 2. 组件中使用数据
    • 2.5 表单数据收集和提交
      • 1. Form组件收集表单数据
      • 2. 按照接口文档封装
        • 接口文档分析
        • 根据文档拼接提交
    • 2.6 图片上传
      • 1. 实现图片上传
      • 2. 无图显示上传框


项目地址

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

一、用户登录和Token

1.1 axios基础封装

  • 最基础的封装:
    1. 封装根域名,baseUrl
    2. 请求拦截器封装
    3. 响应拦截器封装

1. 封装根域名

在这里插入图片描述

2. 请求和响应拦截器

request拦截器
  • 将token添加到请求头里 以:Authorization: Bearer token的形式
    在这里插入图片描述

3. 统一导出

  • 统一导出utils里所有axios相关的方法
    在这里插入图片描述

1.2 RTX管理token

  • token需要在很多地方使用,所以使用RTK进行管理
    在这里插入图片描述

1. user.js用户登录reducers

2. index.js统一导出reducers

  • reducer里的key和value是:user.js里的name和export的名称
    在这里插入图片描述

3. 在文件总入口应用store

  • 添加provider
    在这里插入图片描述

4. 组件里使用异步RTK

  • 组件里使用user.js里提供的异步方法:
    1. 导入dispatch组件 const dispatch = useDispatch()
    2. 通过dispatch调用异步方法
    3. 成功后跳转

在这里插入图片描述

6. token持久化

  • 在获取到token之后,在redux里存一份,在localStorage里存一份,如果下次在请求的时候,先看看是否localStorage里是否有,有的化,则直接拿,没有就重新请求<
http://www.dtcms.com/a/479186.html

相关文章:

  • 做纺织机械的网站域名中国互联网巨头有哪些
  • ORB-SLAM3 erros when run
  • 手机网站模板使用方法wordpress 主题 英文
  • [手写系列]Go手写db — — 第五版(实现数据库操作模块)
  • 网站购买域名朝阳企业网站建设
  • 停车全生态系统架构
  • html电影网站模板下载工具网站推广适合哪种公司做
  • Docker 资源限制与容器管理
  • 2025直播美颜sdk洞察报告:人脸美型算法、AI修复与实时渲染创新
  • 鸿蒙:实现列表单项左滑删除
  • 【TIDE DIARY 4】Agentic Retrieval-Augmented Generation: A Survey on Agentic RAG
  • 免费 网站点击wordpress移动端禁止放大
  • s3fs 取消挂载
  • 新增模块介绍:教师代课统计系统(由社区 @记得微笑 贡献)
  • 15. shell编程之#!与/bin/bas 之间需要空格吗
  • 套模板网站网络seo优化推广
  • 聪明的上海网站帮别人做网站推广犯法吗
  • HTML 总结
  • HTML应用指南:利用POST请求获取全国塔斯汀门店位置信息
  • 鞍山 网站建设网站规划网站建设报价表
  • 云服务器怎么设置虚拟IP,云服务器能起虚拟ip吗
  • Fast DDS 默认传输机制详解:共享内存与 UDP 的智能选择
  • thinkphp开发企业网站如何做优酷网站点击赚钱
  • 供应链金融对生命科学仪器企业市场竞争力的影响研究
  • 高性能高可用设计
  • 【系统分析师】写作框架:需求分析方法及应用
  • dedecms 做网站青岛企业网站建设公司
  • wordpress网仿站建设项目前期收费查询网站
  • tcp和udp协议报文段的报文格式
  • C#异步编程:async修饰方法的返回类型说明