引言
Cloudflare人称"赛博活佛", 其中的
workers更是能够作为代码初学者的一个练手工具, 其免费功能便足以支撑一个微小型的程序运行.
本篇文章旨在给大家分享: 使用Taro(React框架)和Cloudflare workers 来完成一个微信小程序.
预计文章会很长, 持续更新中…
一. 前提条件
这里先贴一下各个官网链接, 后续看情况给出详细步骤.
这个是必须的, 当然, 推荐也安装上nvm, 这样切换版本更方便.
node的版本管理工具, 推荐安装.
前端框架, 你也可以选择使用Vue, 或者直接在微信开发者工具中编写代码.
代码编辑器, 主要用来写后端代码.
用来展示程序界面、发布微信小程序的必需工具.
一切的根源, 因为有它, 笔者才打算写此篇文章.
推荐6-9位数纯数字的xyz域名,每年不到10块钱的价格,非常香的域名了.(毕竟咱们只用在后端, 页面展示选择的是微信小程序)
- 任意AI工具
编写代码的时候将会用到, 你可以根据自身情况选择chatgpt、豆包之类的.
二. 有话要问
- 为什么选择Taro?
因为我个人觉得React比Vue更好. 当然, 你也可以去选择使用Vue之类的代码, 甚至你还可以直接使用微信开发者工具来直接写!
- 为什么开发微信小程序?
有比较重要的一点, 就是免费版的Cloudflare D1数据库每天支持的读次数仅仅才500万, UV稍微高一点就会超出限制, 但是对于一个微小型程序来说足够日常使用了.
当然, 由于咱们的域名是纯数字的, 并且不方便将域名公开给大众, 所以就选择了微信小程序, 如果你有网站需求, taro框架也可以直接编译成网站, 只需要自己打包一下就行了.
- 更多问题整理中…
三. 需求分析
项目背景
随着情侣、伴侣之间的日常开销增多,许多人希望能更方便地记录、共享和统计两人共同的花费情况。传统的记账应用多为个人使用,不支持双人协作或互动。本项目旨在打造一款专为情侣设计的双人共享记账小程序,帮助双方轻松记录、查看和管理共同开销,提升沟通与财务透明度。
目标用户
-
恋爱中或已结婚的情侣;
-
需要共同管理支出的室友、朋友;
-
想要建立“共享记账习惯”的小群体(2人为主)。
核心需求
-
用户账户与绑定
-
- 支持微信登录;
-
- 用户可以通过邀请码/二维码绑定另一半;
-
- 绑定后自动形成一个“共同账本”;
-
- 支持解绑、更换搭档等操作。
-
记账功能
-
- 支持快速添加账单(金额、分类、日期、备注);
-
- 支持选择「谁支付」「谁消费」;
-
- 可设为「共同支出」或「个人支出」;
-
- 支持图片上传(如小票)。
-
数据统计与可视化
-
- 查看当月支出总额;
-
- 自动计算双方“结余”与“平摊”金额;
-
- 支持分类统计(餐饮、出行、礼物、房租等);
-
- 图表展示(饼图、折线图)。
-
情侣特色功能
-
- 每月结算提醒;
-
- 「甜蜜语」模式(添加账单时可附加一句小情话或表情);
-
- 纪念日账单或特殊标签(如“恋爱100天晚餐”);
-
- 支持自定义封面与情侣头像。
-
安全与隐私
-
- 数据仅双方可见;
-
- 重要操作(解绑、删除账本)需双方确认;
-
- 云端存储数据,防止误删丢失。
非功能性需求
-
简洁美观:界面风格清新、情侣主题;
-
操作流畅:记账操作≤3步;
-
跨设备同步:双方实时同步账单;
-
隐私保护:不公开、不社交化。
后续规划(可选)
-
添加「情侣预算」功能;
-
月度结算报告自动生成;
-
多人模式扩展(家庭账本);
-
AI智能账单分析与建议。
项目目标
打造一款:
-
轻量级、操作简单;
-
聚焦情侣场景;
-
兼具情感互动与实用功能的微信小程序。
四.产品分析
用户流程图(简易)
首次使用 → 微信授权登录 → 创建/加入情侣账本 → 记账/查看记录 → 统计分析 → 月结算提醒
功能模块
- 用户模块
| 功能 | 描述 | 备注 |
|---|---|---|
| 微信登录 | 通过 openid 获取用户身份 | 必需 |
| 创建账本 | 单方创建后生成邀请码/二维码 | 账本ID自动生成 |
| 加入账本 | 输入邀请码或扫码加入 | 限制一对一 |
| 解绑功能 | 双方同意后解绑 | 防误操作 |
| 用户信息 | 用户昵称、头像 | 从微信获取 |
- 记账模块
| 功能 | 描述 | 备注 |
|---|---|---|
| 添加账单 | 金额、分类、支付者、消费方、备注、时间 | 支持快速输入 |
| 账单类型 | 共同支出 / 个人支出 | 默认共同支出 |
| 图片上传 | 上传消费凭证或照片 | 微信云存储 |
| 编辑/删除账单 | 支持修改与删除 | 权限控制:任意一方均可 |
| 情感元素 | 可添加“甜蜜语”或表情 | 可选功能 |
分类示例: 餐饮、交通、娱乐、购物、日用品、房租、礼物、其他(支持自定义)。
- 账单模块
| 功能 | 描述 | 备注 |
|---|---|---|
| 列表展示 | 按日期分组展示账单 | 支持上拉加载 |
| 筛选功能 | 按分类、月份、支付者筛选 | 可选多条件 |
| 搜索功能 | 按备注关键字搜索 | 模糊匹配 |
| 账单详情 | 显示账单所有字段 + 图片 | 支持编辑 |
- 统计模块
| 功能 | 描述 | 备注 |
|---|---|---|
| 支出汇总 | 本月/自定义时间区间总支出 | 自动更新 |
| 平摊计算 | 计算双方结余与应补差额 | 共同支出时按 1:1 分摊 |
| 分类统计 | 饼图显示各类支出比例 | 图表组件 |
| 时间趋势 | 折线图展示支出变化 | 支持月份切换 |
| 每月结算 | 一键生成结算报告 | 可导出/分享 |
- 情侣模块
| 功能 | 描述 | 备注 |
|---|---|---|
| 甜蜜语记账 | 每笔账单可添加一句“甜言蜜语” | 自带模板 |
| 纪念日提醒 | 自动生成纪念日账单 | 支持自定义日期 |
| 封面主题 | 不同配色(粉色系、极简系) | 按情侣风格选 |
| 情侣头像 | 双人圆环头像显示 | 从绑定信息中取 |
- 系统模块
| 功能 | 描述 | 备注 |
|---|---|---|
| 数据加密 | 云端存储加密 | 使用微信云开发数据库 |
| 权限控制 | 仅绑定双方可见数据 | 不可分享账本 |
| 数据备份 | 自动每日备份 | 可手动导出JSON |
| 推送提醒 | 账单添加、月结算提醒 | 微信模板消息 |
页面设计(初版)
|
|
数据结构(示例)
- 用户表
Users
| 字段 | 类型 | 说明 |
|---|---|---|
| userId | string | 用户ID(openid) |
| nickname | string | 昵称 |
| avatarUrl | string | 头像 |
| coupleId | string | 绑定账本ID |
| joinDate | date | 加入时间 |
- 账本表
couples
| 字段 | 类型 | 说明 |
|---|---|---|
| coupleId | string | 账本唯一ID |
| userA | string | 用户A ID |
| userB | string | 用户B ID |
| createTime | date | 创建时间 |
| status | string | active / unbind |
- 账单表
records
| 字段 | 类型 | 说明 |
|---|---|---|
| recordId | string | 账单ID |
| coupleId | string | 所属账本ID |
| payer | string | 支付者ID |
| consumer | string | 消费方ID |
| type | string | 共同/个人 |
| category | string | 消费类别 |
| amount | number | 金额 |
| remark | string | 备注 |
| sweetNote | string | 甜蜜语 |
| image | string | 图片URL |
| createTime | date | 创建时间 |
技术方案(建议)
| 项目 | 建议技术栈 |
|---|---|
| 前端框架 | Taro + React |
| 后端 | CloudFlare Workers |
| 数据库 | CloudFlare D1 SQL数据库 |
| 图表 | AntV F2 |
| 文件存储 | CloudFlare R2 对象存储 |
| 登录 | 微信 openid 授权登录 |
五.UI原型结构描述
Figma 结构稿文字描述版
🌈总体风格方向
-
主题:温馨简约风(粉色/奶白/淡蓝为主色调)
-
设计语言:极简卡片式布局 + 轻圆角(12–16px)
-
图标风格:线性图标(lucide 或 iconfont)
-
主要字体:苹方 / HarmonyOS Sans
-
交互感受:柔和动效、轻点击反馈
🏠首页(账本总览页)
页面名称:首页 / 我的账本
路径:/pages/home/index
主要结构
|
|
动效建议
-
新建账单按钮采用悬浮+阴影;
-
列表滑动时轻微弹性。
💰记账页(添加账单)
页面名称:添加账单
路径: /pages/add/index
主要结构
|
|
交互说明
-
金额输入完成后自动聚焦到分类;
-
上传图片采用微信原生选择;
-
提交成功后显示动画:“记好了~ ❤️”。
📋账单列表页
页面名称:账单记录
路径: /pages/records/index
主要结构
|
|
辅助功能
-
搜索框:输入备注关键字;
-
上拉加载更多账单;
-
空状态:可爱插画“还没有账单哦~”。
📈统计页
页面名称:统计分析
路径: /pages/statistics/index
模块结构
|
|
💞情侣中心页
页面名称:情侣中心 / 我的
路径: /pages/profile/index
页面结构
|
|
⚙️系统与弹窗交互
| 弹窗 | 触发场景 | 内容说明 |
|---|---|---|
| 绑定邀请弹窗 | 生成邀请码后 | 显示二维码 + 链接说明 |
| 解绑确认弹窗 | 点击解绑时 | 双方必须同时确认 |
| 保存成功 | 添加账单后 | “记录成功~ ❤️” |
| 错误提示 | 网络或输入异常 | Toast 弹窗提醒 |
🎨配色建议
| 元素 | 主色 | 辅色 | 说明 |
|---|---|---|---|
| 主色调 | #FF7DA3 | #FFF1F5 | 甜蜜粉 |
| 文本主色 | #333333 | 主要文字 | |
| 次级文字 | #999999 | 辅助说明 | |
| 背景 | #FAFAFA | 通用背景 | |
| 成功色 | #5DD39E | 保存成功动画 | |
| 警示色 | #FF6363 | 删除 / 解绑警告 |
🧩交互动效建议
-
按钮点击轻缩放 0.95 → 1.0;
-
图表加载渐入;
-
新建账单后出现小心形粒子动效;
-
页面切换使用滑入动画;
-
解绑操作加入倒计时确认。
🪄Figma 结构层级
|
|
Figma文本形式
在 Figma 中使用 「Wireframe / Builder / Autoflow」类插件导入,即可快速生成页面框架。 (点击展开收缩)
|
|
📘导入说明:
-
如果你会使用figma,那么只需要导入以上文本,即可生成页面
-
如果你在国内,并且没用过figma,那么可以用AI将上述文本转成自然语言,然后通过墨刀设计、mastergo等国内设计平台的AI功能来自动生成页面.
自然语言描述 (点击展开收缩)
这是一个情侣双人记账小程序的界面结构设计描述。整个应用包含五个主要页面和一些共用组件。
首页(账本总览)
这是应用的主页面,顶部有情侣的双人头像和标题“我们的账本”,以及设置按钮。页面中间显示本月总支出金额,并细分了你和TA各自的支出及平摊差额,还用一个饼图展示了支出比例。页面有醒目的“新建账单”按钮,下方提供了支出趋势折线图和最近的三条账单记录,如“咖啡-¥28.00”。页面右下角还有一个悬浮的“+”记账按钮。
添加账单页面
这个页面用于记录新账单。顶部有返回按钮和标题。主体是一个表单,需要填写金额、选择消费分类(如餐饮、出行)、选择由谁支付、确定是共同还是个人支出,还可以添加备注、图片和日期。页面还有一个特色的“甜蜜语”区域,可以输入温馨话语并选择表情。最后有“保存账单”按钮,成功后会有心形动画效果。
账单记录页面 这个页面展示所有历史账单。顶部可以搜索备注,下面有按月份、分类、支付者进行筛选的选项。账单列表按日期分组显示,每条记录都包含消费图标、名称、金额和支付详情。
统计分析页面
这个页面用图表展示消费数据。顶部可以切换月份。页面包含展示消费分类比例的饼图、显示支出变化的趋势图,以及总结总支出、双方各自支出和平摊差额的数据卡片。还可以一键生成月度结算报告。
情侣中心页面
这是管理双方账户的页面。显示情侣头像、昵称和绑定状态。主要信息区展示纪念日、上次结算日期和账本ID。功能列表包括编辑纪念日、更换应用主题、导出数据,以及需要双方确认的解绑功能。
共用组件
设计中使用了一套统一的组件库,包括主要按钮、图标按钮、饼图、折线图、账单卡片、空状态提示、双人头像组、筛选栏和甜蜜语输入区等,以保证整个应用体验的一致性。 总的来说,这是一个功能清晰、注重情侣共同理财和情感互动体验的记账小程序设计。
输出效果图(可参考)
这是我生成的图:
六.小程序页面开发
新建并初始化项目
在你的文件夹下打开CMD, 然后输入taro init couple-ledger
项目介绍、框架之类的可以参考我的选择:
防止图片失效,这里给出文字版:
|
|
最后,cd couple-ledger进入项目目录,输入npm install即初始化完毕.
引入tailwindcss、antd-f2
在项目目录下, cmd中输入npm install -D [email protected] postcss autoprefixer
附录
参考
版权信息
本文原载于 彩虹兔の博客,遵循 CC BY-NC-SA 4.0 协议,复制请保留原文出处。