uni-shop-vue3/README.md

183 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Uni-Shop 电商应用
Uni-Shop 是一个基于 uni-app 开发的跨平台电商应用支持多端部署微信小程序、H5、App等。该项目实现了完整的电商功能包括商品浏览、分类查询、购物车、订单管理、用户中心等核心功能。
## 预览(手机扫码)
![](./preview//uni-shop-h5.png)
## 项目特点
- 基于 uni-app 框架开发,实现一次开发,多端部署
- 使用 Vue 3 + TypeScript 开发,提供类型安全和更好的开发体验
- 采用 Pinia 进行状态管理,支持数据持久化
- 组件化开发,提高代码复用性和可维护性
- 完整的电商业务流程实现
## 技术栈
- **前端框架**uni-app、Vue 3
- **开发语言**TypeScript
- **状态管理**Pinia + pinia-plugin-persistedstate持久化
- **UI组件**uni-ui
- **CSS预处理器**SCSS
- **构建工具**Vite
- **代码规范**ESLint + Prettier
- **Git Hook**husky + lint-staged
## 项目结构
```
uni-shop/
├── src/ # 源代码目录
│ ├── components/ # 全局公共组件
│ ├── composables/ # 组合式函数
│ ├── pages/ # 主包页面
│ │ ├── index/ # 首页
│ │ ├── category/ # 分类页
│ │ ├── cart/ # 购物车
│ │ ├── my/ # 个人中心
│ │ ├── goods/ # 商品详情
│ │ ├── hot/ # 热门推荐
│ │ └── login/ # 登录页
│ ├── pagesMember/ # 会员分包(个人信息、地址管理等)
│ ├── pagesOrder/ # 订单分包(订单创建、详情、支付等)
│ ├── services/ # API 服务
│ ├── stores/ # Pinia 状态管理
│ │ ├── modules/ # 状态模块
│ │ └── index.ts # Pinia 入口
│ ├── styles/ # 全局样式
│ ├── types/ # TypeScript 类型定义
│ ├── utils/ # 工具函数
│ │ └── http.ts # 网络请求封装
│ ├── App.vue # 应用入口组件
│ ├── main.ts # 应用入口文件
│ ├── pages.json # 页面路由配置
│ └── manifest.json # 应用配置
├── static/ # 静态资源
│ └── tabs/ # 底部导航图标
├── .eslintrc.js # ESLint 配置
├── .gitignore # Git 忽略文件
├── .prettierrc.json # Prettier 配置
├── index.html # HTML 模板
├── package.json # 项目依赖
├── tsconfig.json # TypeScript 配置
└── vite.config.ts # Vite 配置
```
## 功能模块
### 1. 首页
- 轮播图展示
- 商品分类导航
- 热门商品推荐
- 猜你喜欢(无限滚动加载)
### 2. 分类
- 分类导航
- 分类商品展示
### 3. 商品详情
- 商品信息展示
- 规格选择
- 加入购物车
- 立即购买
### 4. 购物车
- 商品列表
- 商品选择
- 数量修改
- 结算功能
### 5. 个人中心
- 用户信息展示
- 订单管理
- 地址管理
- 设置
### 6. 订单
- 订单创建
- 订单列表
- 订单详情
- 支付功能
## 开发规范
### 命名规范
- 文件夹和文件名使用小写字母和连字符kebab-case
- 组件名:使用 PascalCase
- 变量和函数:使用 camelCase
- 常量:使用 UPPER_SNAKE_CASE
### 代码风格
- 使用 ESLint 和 Prettier 进行代码格式化
- 提交前自动进行代码检查(通过 husky 和 lint-staged
### 组件开发规范
- 组件文件使用 .vue 扩展名
- 组件使用 `<script setup>` 语法
- 自定义组件以 Jbc 开头(通过 easycom 自动注册)
### API 请求规范
- 所有 API 请求统一通过 services 目录下的模块进行管理
- API 函数命名规则:动词 + 模块名 + API 后缀(如 getGoodsAPI
- 使用 TypeScript 类型定义请求参数和响应数据
## 运行项目
### 环境要求
- Node.js >= 22.0.0
- pnpm >= 10.0.0
### 安装依赖
```bash
pnpm install
```
### 开发模式
```bash
# H5
pnpm run dev:h5
# 微信小程序
pnpm run dev:mp-weixin
# 其他平台
pnpm run dev:custom
```
### 打包构建
```bash
# H5
pnpm run build:h5
# 微信小程序
pnpm run build:mp-weixin
# 其他平台
pnpm run build:custom
```
## 项目亮点
1. **TypeScript 支持**:全面使用 TypeScript 进行开发,提供类型安全
2. **组合式 API**:使用 Vue 3 的组合式 API 进行开发,提高代码复用性
3. **自定义请求库**:封装了基于 uni.request 的请求库,支持拦截器和错误处理
4. **状态持久化**:使用 pinia-plugin-persistedstate 实现状态持久化
5. **分包加载**:采用分包策略优化小程序加载性能
6. **自定义组件**:开发了多个可复用的业务组件