3.0 KiB
3.0 KiB
实施计划: 003 - 用户端体验
本文档为“用户端体验”功能规格的技术实施计划。
1. 总体思路
用户端体验是转化的关键,需要保证页面的高性能和交互的流畅性。后端需提供快速响应的API,前端则通过无限滚动等技术优化大数据量下的列表展示。
2. 后端开发任务 (Backend Tasks)
2.1. 新增服务与数据库设计
-
短链接服务 (Short Link Service)
- 数据库: 创建
short_links表,包含id,code(唯一索引),original_url,created_at。 - 内部API: 创建一个内部
POST /api/v1/internal/shorten接口,用于生成和存储短链接。 - 公共重定向: 创建一个公共
GET /r/{code}接口,用于处理短链接的302重定向。
- 数据库: 创建
-
海报生成服务 (Poster Generation Service)
- 技术选型: 引入图像处理库(如 Node.js 的
sharp或 Python 的Pillow)。 - API设计: 创建
GET /api/v1/me/poster接口。默认返回image/png格式的图片文件流。当接收到?render=client参数时,返回构建海报所需的JSON数据(背景图URL、文案、二维码数据等),以支持客户端渲染的降级方案。
- 技术选型: 引入图像处理库(如 Node.js 的
-
数据库更新
- 在
invitations表(或类似表)中增加status字段 (enum:clicked,registered,ordered),用于追踪邀请状态。
- 在
2.2. API Endpoint 设计
-
GET /api/v1/me/invitation-info: 获取当前用户的邀请信息- Response:
{ short_link, ... },返回已生成的专属短链接。
- Response:
-
GET /api/v1/me/invited-friends: 获取邀请好友列表(分页)- Query Params:
page,limit。 - Response: 返回经过隐私处理(昵称、打码手机号、头像)的好友列表及其状态。
- Query Params:
-
GET /api/v1/me/rewards: 获取奖励明细列表(分页)- Query Params:
page,limit。 - Response: 返回当前用户的奖励记录列表。
- Query Params:
3. 前端开发任务 (Frontend Tasks)
3.1. UI 组件设计
UserCenter.vue: 用户个人中心的主页面,整合分享和记录查看功能。ShareModule.vue: 用于展示分享信息的组件,包含:- “一键复制”短链接的按钮。
- 展示分享海报,并处理服务端/客户端渲染的逻辑。
InfiniteScrollList.vue: 一个可复用的列表组件,封装“滚动到底部自动加载下一页”的逻辑。InvitedFriendItem.vue: 用于渲染“邀请记录”列表中的单项,展示好友的隐私保护信息和邀请状态。RewardItem.vue: 用于渲染“奖励明细”列表中的单项。
3.2. API 集成与状态管理
- 在API客户端中新增与用户中心相关的接口请求函数。
- 使用
Pinia管理用户状态,并可以结合useSWRV或自定义的useFetchComposable 函数来管理分页数据的获取、缓存和“无限滚动”的状态。 - 在
ShareModule.vue中实现降级逻辑:当从服务端获取海报图片失败或超时,能自动切换到客户端渲染模式。