本项目是一款面向 C 端的移动端商城 H5,覆盖从浏览到售后的完整购物流程。核心模块包括:
① 商品侧:首页(推荐位 / 楼层 / 秒杀 / 拼团入口)、分类页(多级联动 + 筛选 + 排序)、搜索(热门词 + 历史 + 联想)、商品详情(SKU 选择 + 评价 + 详情图轮播 + 猜你喜欢)。
② 交易侧:购物车(多店铺聚合 + 失效商品识别)、订单提交(地址 / 优惠券 / 积分 / 配送方式四联动算价)、订单列表(待付 / 待发 / 待收 / 待评 / 售后)、订单详情、物流轨迹、申请退款。
③ 用户侧:注册登录(手机号 + 短信验证码 + 微信一键)、个人中心(订单 / 优惠券 / 收藏 / 地址 / 积分)、会员等级、签到、分享海报生成。
④ 运营侧:新人礼包、限时秒杀、拼团、优惠券、积分商城、消息中心、客服 IM。
整套设计对齐大厂主流电商 App 体验,强调首屏加载速度(路由懒加载 + 骨架屏 + 图片懒加载 + 资源预加载)与离线可用(关键页面缓存 + Pinia 持久化)。
整体架构:采用 Vue 3 + Vite 工程化搭建,目录按 views / components / stores / api / utils / assets 分层。状态管理用 Pinia 按业务域拆 6 个 store(user / cart / order / goods / coupon / app),单文件最大不超过 400 行。
我负责的模块:
商品详情页:封装 SKU 选择组件(库存联动 / 规格禁用 / 限购规则),价格计算支持优惠券预核 + 积分抵扣预览
购物车:多店铺分组 + 失效商品灰显 + 编辑模式(数量步进 / 删除 / 移入收藏),通过 Pinia + localStorage 持久化,离线可用
订单提交页:地址 / 优惠券 / 配送方式 / 积分四个维度联动算价,用 computed 组合 4 个 store 数据,结算金额响应式
性能优化:首屏用路由懒加载 + defineAsyncComponent + 骨架屏;列表页虚拟滚动;图片用 v-lazy + WebP;包体首屏压缩到 180KB
遇到的难点:
多端适配:用 postcss-px-to-viewport 一套代码兼容 iPhone / 安卓 / 小程序,375/750 双稿视觉稿
SKU 联动:嵌套规格时用「笛卡尔积 + 库存过滤」算法,确保无库存组合不出现在 UI 上
离线体验:Service Worker 缓存首屏 HTML 和关键接口,用户弱网也能浏览已加载内容