128 lines
2.7 KiB
Markdown
128 lines
2.7 KiB
Markdown
# Task Show
|
||
|
||
基于 Vue3 + Element Plus + Pinia + TypeScript + Axios 的前端基础工程
|
||
|
||
## 技术栈
|
||
|
||
- **Vue 3** - 渐进式 JavaScript 框架
|
||
- **TypeScript** - JavaScript 的超集
|
||
- **Vite** - 下一代前端构建工具
|
||
- **Element Plus** - 基于 Vue 3 的组件库
|
||
- **Pinia** - Vue 的状态管理库
|
||
- **Vue Router** - Vue 官方路由管理器
|
||
- **Axios** - 基于 Promise 的 HTTP 客户端
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
TaskShow/
|
||
├── src/
|
||
│ ├── assets/ # 静态资源
|
||
│ ├── components/ # 公共组件
|
||
│ ├── router/ # 路由配置
|
||
│ │ └── index.ts
|
||
│ ├── store/ # Pinia 状态管理
|
||
│ │ └── index.ts
|
||
│ ├── types/ # TypeScript 类型定义
|
||
│ │ └── api.ts
|
||
│ ├── utils/ # 工具函数
|
||
│ │ └── request.ts # Axios 请求封装
|
||
│ ├── views/ # 页面组件
|
||
│ │ └── Home.vue
|
||
│ ├── App.vue # 根组件
|
||
│ └── main.ts # 入口文件
|
||
├── index.html # HTML 模板
|
||
├── package.json # 项目配置
|
||
├── tsconfig.json # TypeScript 配置
|
||
├── vite.config.ts # Vite 配置
|
||
└── README.md # 项目说明
|
||
```
|
||
|
||
## 安装依赖
|
||
|
||
```bash
|
||
npm install
|
||
# 或
|
||
yarn install
|
||
# 或
|
||
pnpm install
|
||
```
|
||
|
||
## 开发
|
||
|
||
```bash
|
||
npm run dev
|
||
# 或
|
||
yarn dev
|
||
# 或
|
||
pnpm dev
|
||
```
|
||
|
||
## 构建
|
||
|
||
```bash
|
||
npm run build
|
||
# 或
|
||
yarn build
|
||
# 或
|
||
pnpm build
|
||
```
|
||
|
||
## 预览构建结果
|
||
|
||
```bash
|
||
npm run preview
|
||
# 或
|
||
yarn preview
|
||
# 或
|
||
pnpm preview
|
||
```
|
||
|
||
## 请求封装说明
|
||
|
||
### 使用方式
|
||
|
||
```typescript
|
||
import { request } from '@/utils/request'
|
||
|
||
// GET 请求
|
||
const response = await request.get('/api/users', { id: 1 })
|
||
|
||
// POST 请求
|
||
const response = await request.post('/api/users', { name: 'John' })
|
||
|
||
// PUT 请求
|
||
const response = await request.put('/api/users/1', { name: 'Jane' })
|
||
|
||
// DELETE 请求
|
||
const response = await request.delete('/api/users/1')
|
||
|
||
// 自定义配置
|
||
const response = await request.get('/api/users', {}, {
|
||
showLoading: false, // 不显示 loading
|
||
showError: false, // 不显示错误提示
|
||
timeout: 5000 // 自定义超时时间
|
||
})
|
||
```
|
||
|
||
### 特性
|
||
|
||
1. **自动添加 Token**:请求时自动从 store 中获取 token 并添加到请求头
|
||
2. **统一错误处理**:自动处理 HTTP 错误和业务错误
|
||
3. **Loading 提示**:请求时自动显示 loading(可配置)
|
||
4. **错误提示**:请求失败时自动显示错误消息(可配置)
|
||
5. **类型支持**:完整的 TypeScript 类型定义
|
||
|
||
### 环境变量
|
||
|
||
在 `.env`、`.env.development` 或 `.env.production` 文件中配置 API 基础地址:
|
||
|
||
```
|
||
VITE_API_BASE_URL=/api
|
||
```
|
||
|
||
## License
|
||
|
||
MIT
|
||
|