一、立项背景和目标
在数字化消费趋势下,线上购物成为主流,但现有电商平台对书籍、文创等垂直品类覆盖不足,存在交互繁琐、加载慢等问题,线下书店又受地域限制。基于此,“我的书店” 电商项目应运而生,采用前后端分离架构,以解决用户精准购物需求,适配多端使用场景。
项目目标清晰:用户层面,打造界面友好、操作便捷的平台,实现商品浏览、搜索、购物车管理等功能;技术层面,用 Vue 3、Spring Boot 等主流技术搭建可维护架构,验证技术应用价值;业务层面,完成基础电商流程闭环,为后续拓展预留空间。
二、软件功能与核心模块
软件整体围绕 “找货 - 选货 - 管货” 核心场景,涵盖商品展示、分类筛选、实时搜索、购物车管理、分页浏览等功能。
产品展示模块(HomePage.vue)是核心,左侧侧边栏提供五大分类导航,选中分类高亮显示,主体用响应式网格展示商品卡片,含图片、名称等信息,还支持分页调整。
实时搜索模块带 300ms 防抖,避免无效请求,搜索范围覆盖商品多字段,且与分类协同,仅显示所选分类下匹配商品,提升精准度。
购物车管理模块(cart.js)基于 Pinia,支持添加、移除、更新商品数量及清空操作,通过计算属性实时统计总数量和价格,与产品展示模块无缝衔接。
路由与页面管理模块依托 Vue Router,配置首页、详情页、购物车页面路由,实现页面无缝切换,保持全局样式统一。
三、业务流程与功能路径
核心业务流程为:用户进首页→选分类 / 搜关键词→系统筛选分页展示商品→用户浏览卡片→加购→进购物车调整→查看总价,全程无刷新,交互连贯。
分类筛选路径:用户点侧边栏分类→触发 selectCategory 方法→重置关键词与页码→按分类 ID 过滤商品→更新分页→展示对应商品,分类与商品通过 categoryId 关联。
搜索功能路径:用户输关键词→300ms 后执行搜索→未选分类则筛选全量匹配商品,已选则筛选对应分类下商品→实时更新结果与分页,兼顾效率与精准度。
购物车操作路径:用户点 “加入购物车”→Pinia 存储数据→更新总数量与总价;进购物车页面→调整数量或删除商品→状态同步,确保数据一致。
一、整体架构与设计思路
我主导搭建了项目的前后端分离架构,前端基于Vue 3 ,利用其组件化、响应式特性,搭配Vue Router实现页面路由管理,Pinia进行全局状态管控(如购物车数据、用户搜索状态 )。UI 开发时,通过CSS 网格布局、弹性盒模型,保障多端适配及界面交互流畅。后端选用Spring Boot ,简化开发流程,设计RESTful API 与前端交互,采用MySQL存储商品、分类等数据,Redis缓存高频访问的商品列表,提升页面响应速度。不同模块按需选型:商品展示模块,前端用Vue 3组件渲染商品卡片、分页组件,后端Spring Boot编写商品列表查询接口;购物车模块,前端Pinia管理状态,后端设计对应增删改查接口,保障数据流转。
二、我的负责模块与成果
我独立承担商品展示模块(含分类筛选、分页)、实时搜索模块及购物车功能模块:
商品展示模块:
从0到1完成开发:设计响应式布局,左侧分类导航通过Vue 3动态样式绑定实现高亮,主体用CSS网格渲染商品卡片,兼容手机、平板、PC端。开发分页逻辑,支持页码跳转、每页数量调整,接入后端商品列表接口后,实现500 + 商品高效加载,分页切换响应时间≤200ms 。上线后,该模块日浏览量超800次,用户因分类筛选不清晰的反馈减少70% 。
实时搜索模块:
攻克搜索性能与精准度难题:实现300ms防抖的实时搜索,重构搜索算法,覆盖商品名称、描述等字段,支持分类下精准搜索。优化前,搜索全量商品需1s + ;优化后,通过前端本地过滤(小数据) + 后端索引查询(大数据)结合,响应时间缩短至300 - 500ms ,关键词匹配准确率达95% ,搜索功能日调用量超600次 。
购物车功能模块:
搭建完整状态管理体系:基于Pinia设计购物车store,实现商品添加、数量修改、删除、总价计算等功能。与商品展示模块联动,“加入购物车”按钮点击响应率100% ,数据同步无延迟。测试阶段,模拟100次并发加购,购物车数据准确率100% ,上线后,用户购物车留存率提升12% 。
三、遇到的难点、“坑”及解决方案
Vue 3响应式数据失效:
开发商品筛选功能时,分类切换后商品列表未更新,排查发现是直接修改数组索引导致响应式失效。解决方案:改用Vue 3提供的`push`、`splice`等方法操作数组,或通过`ref`、`reactive`规范数据定义,修复后分类筛选实时性达标。
跨域接口请求阻塞:
联调后端API时,浏览器报跨域错误,后端虽配置CORS,但复杂请求(如带自定义头的搜索接口)仍被拦截。“坑”在于CORS配置未覆盖所有请求方法、头信息。解决:后端完善CORS配置,