Appearance
UNI-SHOP 跨端电商小程序
项目概览
- 项目类型:跨端电商小程序 / H5
- 核心方向:商品浏览、购物车、订单交互、跨端复用
- 负责角色:前端开发
- 当前状态:内容可继续按真实项目细节补充
项目背景
UNI-SHOP 是基于 Uni-app 构建的跨端电商解决方案,支持微信小程序与 H5。项目重点是商品浏览、搜索、购物车、订单交互和跨端复用。
技术栈
- Uni-app
- Vue 3
- Pinia
- Alova
- SCSS
- pinia-plugin-persistedstate
我的职责
- 负责核心页面开发,包括商品列表、搜索、购物车和商品数量交互。
- 引入 Alova 管理请求状态,统一处理 Loading、错误和数据缓存逻辑。
- 基于 Pinia 设计购物车模块,并实现本地持久化。
- 封装 TabBar 角标同步 Hook,保障购物车数量变化时多页面状态一致。
- 封装 SearchBar 和商品列表组件,提高页面复用效率。
核心功能
- 商品浏览:支持首页推荐、分类列表和搜索结果展示。
- 购物车:支持商品数量、选中状态、角标同步和本地持久化。
- 订单交互:覆盖商品确认、数量调整和结算入口。
- 跨端复用:同一套页面逻辑适配小程序与 H5 场景。
技术亮点
请求层设计
使用 Alova 的 useRequest Hook 管理请求生命周期,减少重复的 Loading 和错误处理代码,让页面更关注业务状态。
状态管理
购物车使用 Pinia 管理,配合持久化插件保存本地状态,避免用户刷新或切换页面后购物车数据丢失。
组件封装
SearchBar 和商品列表组件通过 props 与事件回调暴露稳定接口,在搜索页、首页和分类页复用。
难点与解决方案
| 难点 | 解决方案 |
|---|---|
| 小程序和 H5 状态表现不一致 | 将购物车核心逻辑收敛到 Pinia store |
| 重复请求状态代码过多 | 使用 Alova Hook 统一管理请求生命周期 |
| TabBar 角标需要实时同步 | 封装数量同步 Hook,监听购物车状态变化 |
| 商品组件在多个页面复用 | 拆分数据、样式和事件接口,减少页面耦合 |
项目截图
后续替换为真实页面截图,建议包含首页、分类页、购物车页和订单确认页。
面试可讲点
- Alova 相比手写请求封装解决了什么问题。
- 购物车持久化如何处理数据一致性。
- Uni-app 跨端开发中需要注意哪些样式和生命周期差异。
- 如何设计一个可复用但不过度抽象的业务组件。
后续优化
- 补充真实小程序截图和 H5 页面截图。
- 补充请求层封装示例和购物车状态流转图。
- 明确不同端的兼容处理点。