00 / 00
移动端数据与同步
移动端如何通过 API 获取数据、缓存状态、刷新列表和处理弱网
移动端不直连数据库。它只通过 01MVP API 拿数据,App 里做短期缓存、刷新和错误恢复。
数据流向
用户操作
点击 / 刷新 / 提交
->
App 缓存
TanStack Query
->
oRPC API
公开 / 受保护接口
->
数据库
只由后端访问
移动端要处理这些状态
| 状态 | 怎么做 |
|---|---|
| 首次加载 | 给个轻量 loading,别白屏 |
| 下拉刷新 | 重新请求关键数据 |
| 弱网 | 给出能看懂的提示,让用户能重试 |
| 未登录 | 引导去登录,别显示一片空白 |
| 权限不足 | 说清楚原因,别暴露内部字段 |
别把缓存当数据库
App 缓存只是为了更快显示页面,真正的数据在后端。用户退出登录、切换账号、权限变了,App 都要清掉或刷新缓存。
多端输入时的最低同步规则
如果用户会在 Web、Mobile、Desktop 同时创建或编辑内容,先把同步规则写清楚。MVP 可以简单,但不能含糊。
| 规则 | 建议 |
|---|---|
| 数据来源 | 服务端是最终来源,App 只做本地缓存和临时草稿 |
| 写入请求 | 每次创建、编辑、删除都带上用户身份和请求唯一标识,避免重复提交 |
| 列表刷新 | 进入页面、下拉刷新、重新联网后重新拉取关键列表 |
| 删除处理 | 用服务端删除状态或更新时间处理,避免旧设备把已删内容刷回来 |
| 冲突策略 | 先用“最后一次保存为准”,重要字段再做确认或合并 |
| 退出登录 | 清掉当前用户缓存、草稿和本地 token |
如果产品包含笔记、Todo、洞察这类高频编辑内容,建议把“最后保存时间”和“最后编辑端”显示给用户。这样即使发生冲突,用户也能理解当前看到的是哪一版。
弱网和离线体验
第一版不一定要做完整离线编辑,但要避免用户以为内容已经保存。
| 状态 | UI 应该怎么反馈 |
|---|---|
| 网络断开 | 明确显示当前无法同步 |
| 保存中 | 给出进行中状态,避免重复点击 |
| 保存失败 | 保留用户输入,提供重试 |
| 重新联网 | 自动刷新关键数据,必要时提示用户重新提交 |
复制给 AI
请帮我检查 01MVP mobile 的数据请求和同步体验。
请确认 App 不直连数据库,只通过 oRPC/API 请求数据。
请检查首次加载、下拉刷新、弱网失败、未登录、权限不足、退出登录后的缓存清理。
如果用户会在 Web、Mobile、Desktop 多端编辑,请明确服务端最终数据来源、重复提交保护、删除处理和冲突策略。这篇文档有问题?