day05-ReactRouter记账本
环境搭建
使用CRA创建项目,并安装必要依赖,包括下列基础包
Redux状态管理 - @reduxjs/toolkit 、 react-redux
路由 - react-router-dom
时间处理 - dayjs
class类名处理 - classnames
移动端组件库 - antd-mobile
请求插件 - axios
配置别名路径
1. 背景知识
路径解析配置(webpack),把 @/ 解析为 src/
路径联想配置(VsCode),VsCode 在输入 @/ 时,自动联想出来对应的 src/下的子级目录
2. 路径解析配置
配置步骤:
安装craco npm i -D @craco/craco
项目根目录下创建配置文件 craco.config.js
配置文件中添加路径解析配置
包文件中配置启动和打包命令

3. 联想路径配置
配置步骤:
根目录下新增配置文件 - jsconfig.json
添加路径提示配置
数据Mock实现
在前后端分类的开发模式下,前端可以在没有实际后端接口的支持下先进行接口数据的模拟,进行正常的业务功能开发
1. 常见的Mock方式

2. json-server实现Mock
实现步骤:
项目中安装json-server npm i -D json-server
准备一个json文件 (素材里获取)
添加启动命令

访问接口进行测试
整体路由设计

俩个一级路由 (Layout / new)2. 俩个二级路由 (Layout - mouth/year)
antD主题定制
1. 定制方案

2. 实现方式
全局定制

局部定制

3. 记账本主题色
Redux管理账目列表

TabBar功能实现

1. 静态布局实现
配套静态模版和样式文件
2. 切换路由实现
监听change事件,在事件回调中调用路由跳转方法
月度账单-统计区域

1. 准备静态结构
2. 点击切换时间选择框
实现思路:
准备一个状态数据
点击切换状态
根据状态控制弹框打开关闭以及箭头样式
3. 切换时间显示

实现思路:
以当前时间作为默认值
在时间切换时完成时间修改
4. 统计功能实现
实现思路:
按月分组
根据获取到的时间作为key取当月的账单数组
根据当月的账单数组计算支出、收入、总计
5. 完整代码
月度账单-单日统计列表实现

1. 准备组件和配套样式
配套样式
2. 按日分组账单数据

3. 遍历日账单组件并传入参数
4. 接收数据计算统计渲染页面
月度账单-单日账单列表展示

1. 渲染基础列表
2. 适配Type
1-准备静态数据
2-适配type
月度账单-切换打开关闭


月度账单-Icon组件封装

1. 准备静态结构
2. 设计参数
3. 使用组件
记账功能
记账 - 结构渲染
配套样式
记账 - 支出和收入切换
记账 - 新增一笔
Last updated
Was this helpful?