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

React前端开发_Day5

参考课程:

黑马程序员 React18入门到实战】

[https://www.bilibili.com/video/BV1ZB4y1Z7o8]

@ZZHow(ZZHow1024)

记账本案例进阶——月度账单

  • 功能点:
    1. 点击切换月份
    2. 适配箭头显示
    3. 统计支出、收入、结余数据
  • 点击切换选择框功能实现
    • 功能要求:
      1. 点击打开时间选择弹框
      2. 点击取消/确认按钮以及蒙层区域都可以关闭弹框
      3. 弹框关闭时箭头朝下,打开是箭头朝上
    • 思路:
      • 准备一个状态数据
      • 通过切换状态变化实现功能
  • 点击确定切换时间显示功能实现
    • 思路:
      • 创建一个控制时间显示的状态
      • 拿到当前选中的时间赋值给状态
  • 账单数据按月分组实现
    • 思路:
      • 从 Redux 中拿到数据
      • 数据二次处理(useMemo)
      • 按月分组逻辑实现(lodash)
  • 计算选择月份的统计数据功能实现
    • 需求:点击时间确认按钮之后,把当前月的统计数据计算出来显示到页面中
    • 思路:
      • 点击确认获取到当前月
      • 在按月分组数据中找到对应数组
      • 基于数组做计算
  • 月度初始化时渲染统计数据
    • 需求:打开月度账单时,把当前月份的统计数据渲染到页面中
    • 思路:
      • useEffect
      • 以当前时间作为 key 取账单数组
      • monthResult 自动重新计算
  • 单日统计列表实现
    • 需求:把当前月的账单数据以单日为单位进行统计显示
    • 思路:
      • 准备单日账单统计组件
      • 把当前月的数据按照日来分组(日期列表和账单分组数据
      • 遍历数据给组件传入日期数据和当日列表数据
  • 单日账单列表显示功能实现
    • 需求:把单日的账单列表渲染到视图中
    • 思路:
      • 准备列表模版
      • 渲染模版数据
      • 适配中文显示
  • 点击切换列表显示功能实现
    • 需求:点击展开收起箭头,切换账单列表显示
    • 思路:
      • 准备控制显隐的状态
      • 点击取反操作
      • 根据状态适配箭头和显隐
  • 账单类型图标组件封装实现
    • 需求:封装一个图标组件,可以根据不同的账单类型显示不同的图标
    • 思路:
      • 准备纯静态的组件结构
      • 根据 Props 适配不同图标
      • Props(type)
  • 案例演示:react-bill-pro

记账本案例进阶——新增账单

  • 功能点:
    1. 不同类型的账单列表渲染
    2. 支出和收入俩种状态切换
    3. 点击保存实现记账功能
  • 支出和收入切换功能实现
    • 思路:
      • 准备控制支出收入的状态
      • 点击按钮切换状态
      • 适配按钮样式
      • 适配数据显示
  • 新增账单功能实现
    • 思路:
      • 组件中收集接口数据
        • type:账单类型——支出 pay/收入 income
        • money:账单金额——支出为负/收入为正
        • date:记账时间
        • useFor:账单 Type
      • 在 Redux 中编写异步代码
      • 点击保存是提交 action
  • 收尾优化
    • 新账单类型选中状态提示
    • 新账单时间选择
    • 保存成功提示
  • 案例演示:react-bill-pro
http://www.dtcms.com/a/356917.html

相关文章:

  • OCELOT 2023:细胞 - 组织相互作用场景下的细胞检测挑战赛|文献速递-深度学习人工智能医疗图像
  • BSS138-7-F 电子元器件Diodes美台N沟道小信号增强型MOSFET晶体管
  • 基于MCP工具的开发-部署-上线与维护全流程技术实现与应用研究
  • Bert学习笔记
  • CSS scale函数详解
  • 基于BeautifulSoup库的简易爬虫实现:以大学排名为例
  • 【K8s】整体认识K8s之与集群外部访问--service
  • 机器学习回顾——逻辑回归
  • pcl封装6 connection_cloud 提取聚簇后的每个点云
  • 开源vs商用美颜sdk:美白滤镜功能在直播中的优劣对比
  • RoadMP3告别车载音乐烦恼,一键get兼容音频
  • FDTD_mie散射_项目研究(1)
  • 抖音电商首创最严珠宝玉石质检体系,推动行业规范与消费扩容
  • Shader开发(十八)实现纹理滚动效果
  • Shell 脚本基础教程
  • AARRR模型(用户生命周期模型)——用户怎么长大的?
  • 【人工智能99问】GPT4的原理是什么?(32/99)
  • 【备战2025数模国赛】(三)数模常见赛题类型及解决办法
  • 矩池云中LLaMA- Factory多机多卡训练
  • 介绍⼀下Llama的结构
  • 身份证实名认证API集成—身份核验接口-网络平台安全合规
  • GoogLeNet:深度学习中的“卷积网络变形金刚“
  • 安全月报 | 傲盾DDoS攻击防御2025年8月简报
  • 贷款审批太慢,如何快速完成财务报表识别录入?
  • 第十三章项目资源管理--13.8 控制资源
  • 关于人工智能模型应用于编程学习我也说两句
  • 2025 IBMS智能化集成系统全面解析指导手册
  • 8月29日星期五今日早报简报微语报早读
  • 创维E910V10C_海思MV100芯片_优盘强刷卡刷固件包
  • 基于脚手架微服务的视频点播系统界面布局部分(一):首页及播放界面布局