(三)黑马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基础封装
- 最基础的封装:
- 封装根域名,baseUrl
- 请求拦截器封装
- 响应拦截器封装
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里提供的异步方法:
- 导入dispatch组件
const dispatch = useDispatch()
- 通过dispatch调用异步方法
- 成功后跳转
- 导入dispatch组件
6. token持久化
- 在获取到token之后,在redux里存一份,在localStorage里存一份,如果下次在请求的时候,先看看是否localStorage里是否有,有的化,则直接拿,没有就重新请求<