day05-ReactRouter记账本

环境搭建

使用CRA创建项目,并安装必要依赖,包括下列基础包

  1. Redux状态管理 - @reduxjs/toolkit 、 react-redux

  2. 路由 - react-router-dom

  3. 时间处理 - dayjs

  4. class类名处理 - classnames

  5. 移动端组件库 - antd-mobile

  6. 请求插件 - axios

配置别名路径

1. 背景知识

  1. 路径解析配置(webpack),把 @/ 解析为 src/

  2. 路径联想配置(VsCode),VsCode 在输入 @/ 时,自动联想出来对应的 src/下的子级目录

image.png

2. 路径解析配置

配置步骤:

  1. 安装craco npm i -D @craco/craco

  2. 项目根目录下创建配置文件 craco.config.js

  3. 配置文件中添加路径解析配置

  4. 包文件中配置启动和打包命令

image.png

3. 联想路径配置

配置步骤:

  1. 根目录下新增配置文件 - jsconfig.json

  2. 添加路径提示配置

数据Mock实现

在前后端分类的开发模式下,前端可以在没有实际后端接口的支持下先进行接口数据的模拟,进行正常的业务功能开发

1. 常见的Mock方式

image.png

2. json-server实现Mock

实现步骤:

  1. 项目中安装json-server npm i -D json-server

  2. 准备一个json文件 (素材里获取)

  3. 添加启动命令

image.png
  1. 访问接口进行测试

整体路由设计

image.png
  1. 俩个一级路由 (Layout / new)2. 俩个二级路由 (Layout - mouth/year)

antD主题定制

1. 定制方案

image.png

2. 实现方式

  1. 全局定制

image.png
  1. 局部定制

image.png

3. 记账本主题色

Redux管理账目列表

image.png

TabBar功能实现

image.png

1. 静态布局实现

配套静态模版和样式文件

2. 切换路由实现

监听change事件,在事件回调中调用路由跳转方法

月度账单-统计区域

image.png

1. 准备静态结构

2. 点击切换时间选择框

实现思路:

  1. 准备一个状态数据

  2. 点击切换状态

  3. 根据状态控制弹框打开关闭以及箭头样式

3. 切换时间显示

image.png

实现思路:

  1. 以当前时间作为默认值

  2. 在时间切换时完成时间修改

4. 统计功能实现

实现思路:

  1. 按月分组

  2. 根据获取到的时间作为key取当月的账单数组

  3. 根据当月的账单数组计算支出、收入、总计

5. 完整代码

月度账单-单日统计列表实现

image.png

1. 准备组件和配套样式

配套样式

2. 按日分组账单数据

image.png

3. 遍历日账单组件并传入参数

4. 接收数据计算统计渲染页面

月度账单-单日账单列表展示

image.png

1. 渲染基础列表

2. 适配Type

1-准备静态数据

2-适配type

月度账单-切换打开关闭

image.png
image.png

月度账单-Icon组件封装

image.png

1. 准备静态结构

2. 设计参数

3. 使用组件

记账功能

记账 - 结构渲染

配套样式

记账 - 支出和收入切换

记账 - 新增一笔

Last updated

Was this helpful?