feat: 随便写个前端的 README 文件
Browse files- sau_frontend/README.md +134 -0
sau_frontend/README.md
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Vue3 + Vite 项目
|
| 2 |
+
|
| 3 |
+
一个基于 Vue3、Vite、Element Plus、Pinia、Vue Router 和 Axios 的现代化前端项目模板。
|
| 4 |
+
|
| 5 |
+
## 🚀 特性
|
| 6 |
+
|
| 7 |
+
- ⚡️ **Vite** - 极速的构建工具
|
| 8 |
+
- 🖖 **Vue 3** - 渐进式 JavaScript 框架
|
| 9 |
+
- 🎨 **Element Plus** - 基于 Vue 3 的组件库
|
| 10 |
+
- 🗂 **Vue Router** - 官方路由管理器(WebHash 模式)
|
| 11 |
+
- 📦 **Pinia** - 新一代状态管理
|
| 12 |
+
- 🔗 **Axios** - HTTP 请求库(已封装)
|
| 13 |
+
- 🎯 **Sass** - CSS 预处理器
|
| 14 |
+
- 📁 **规范化目录结构** - views 存放页面,components 存放组件
|
| 15 |
+
- 🔧 **完整配置** - 包含开发和生产环境配置
|
| 16 |
+
|
| 17 |
+
## 📦 安装
|
| 18 |
+
|
| 19 |
+
```bash
|
| 20 |
+
# 安装依赖
|
| 21 |
+
npm install
|
| 22 |
+
|
| 23 |
+
# 启动开发服务器
|
| 24 |
+
npm run dev
|
| 25 |
+
|
| 26 |
+
# 构建生产版本
|
| 27 |
+
npm run build
|
| 28 |
+
|
| 29 |
+
# 预览生产构建
|
| 30 |
+
npm run preview
|
| 31 |
+
```
|
| 32 |
+
|
| 33 |
+
## 📁 项目结构
|
| 34 |
+
|
| 35 |
+
```
|
| 36 |
+
src/
|
| 37 |
+
├── api/ # API 接口
|
| 38 |
+
│ ├── index.js # API 统一导出
|
| 39 |
+
│ └── user.js # 用户相关 API
|
| 40 |
+
├── components/ # 公共组件
|
| 41 |
+
│ └── HelloWorld.vue # 示例组件
|
| 42 |
+
├── router/ # 路由配置
|
| 43 |
+
│ └── index.js # 路由主文件
|
| 44 |
+
├── stores/ # 状态管理
|
| 45 |
+
│ ├── index.js # Pinia 配置
|
| 46 |
+
│ └── user.js # 用户状态
|
| 47 |
+
├── styles/ # 样式文件
|
| 48 |
+
│ ├── index.scss # 主样式文件
|
| 49 |
+
│ ├── reset.scss # 重置样式
|
| 50 |
+
│ └── variables.scss # 样式变量
|
| 51 |
+
├── utils/ # 工具函数
|
| 52 |
+
│ └── request.js # HTTP 请求封装
|
| 53 |
+
├── views/ # 页面组件
|
| 54 |
+
│ ├── Home.vue # 首页
|
| 55 |
+
│ └── About.vue # 关于页面
|
| 56 |
+
├── App.vue # 根组件
|
| 57 |
+
└── main.js # 入口文件
|
| 58 |
+
```
|
| 59 |
+
|
| 60 |
+
## 🔧 配置说明
|
| 61 |
+
|
| 62 |
+
### 环境变量
|
| 63 |
+
|
| 64 |
+
- `.env` - 通用环境变量
|
| 65 |
+
- `.env.development` - 开发环境变量
|
| 66 |
+
- `.env.production` - 生产环境变量
|
| 67 |
+
|
| 68 |
+
### 路由配置
|
| 69 |
+
|
| 70 |
+
项目使用 Vue Router 4,配置为 WebHash 模式,路由文件位于 `src/router/index.js`。
|
| 71 |
+
|
| 72 |
+
### 状态管理
|
| 73 |
+
|
| 74 |
+
使用 Pinia 进行状态管理,store 文件位于 `src/stores/` 目录。
|
| 75 |
+
|
| 76 |
+
### HTTP 请求
|
| 77 |
+
|
| 78 |
+
Axios 已经过封装,包含:
|
| 79 |
+
- 请求/响应拦截器
|
| 80 |
+
- 错误处理
|
| 81 |
+
- Token 自动添加
|
| 82 |
+
- 统一的响应格式处理
|
| 83 |
+
|
| 84 |
+
使用方式:
|
| 85 |
+
```javascript
|
| 86 |
+
import { http } from '@/utils/request'
|
| 87 |
+
|
| 88 |
+
// GET 请求
|
| 89 |
+
const data = await http.get('/api/users')
|
| 90 |
+
|
| 91 |
+
// POST 请求
|
| 92 |
+
const result = await http.post('/api/users', { name: 'John' })
|
| 93 |
+
```
|
| 94 |
+
|
| 95 |
+
### 样式系统
|
| 96 |
+
|
| 97 |
+
- 使用 Sass 作为 CSS 预处理器
|
| 98 |
+
- 已删除所有浏览器默认样式
|
| 99 |
+
- 提供了完整的样式变量和工具类
|
| 100 |
+
- 支持 Element Plus 主题定制
|
| 101 |
+
|
| 102 |
+
## 🎨 组件库
|
| 103 |
+
|
| 104 |
+
项目集成了 Element Plus,所有组件都可以直接使用:
|
| 105 |
+
|
| 106 |
+
```vue
|
| 107 |
+
<template>
|
| 108 |
+
<el-button type="primary">按钮</el-button>
|
| 109 |
+
<el-input v-model="input" placeholder="请输入内容"></el-input>
|
| 110 |
+
</template>
|
| 111 |
+
```
|
| 112 |
+
|
| 113 |
+
## 📝 开发规范
|
| 114 |
+
|
| 115 |
+
1. **页面组件** 放在 `src/views/` 目录
|
| 116 |
+
2. **公共组件** 放在 `src/components/` 目录
|
| 117 |
+
3. **使用 setup 语法糖** 编写组件
|
| 118 |
+
4. **样式使用 Sass** 并遵循 BEM 命名规范
|
| 119 |
+
5. **API 请求** 统一放在 `src/api/` 目录
|
| 120 |
+
6. **状态管理** 按模块划分,放在 `src/stores/` 目录
|
| 121 |
+
|
| 122 |
+
## 🚀 部署
|
| 123 |
+
|
| 124 |
+
```bash
|
| 125 |
+
# 构建生产版本
|
| 126 |
+
npm run build
|
| 127 |
+
|
| 128 |
+
# 构建完成后,dist 目录包含所有静态文件
|
| 129 |
+
# 可以部署到任何静态文件服务器
|
| 130 |
+
```
|
| 131 |
+
|
| 132 |
+
## 📄 许可证
|
| 133 |
+
|
| 134 |
+
MIT License
|