135 lines
3.4 KiB
Markdown
Raw Permalink Normal View History

2025-09-08 09:32:45 +08:00
# Vue3 + Vite 项目
一个基于 Vue3、Vite、Element Plus、Pinia、Vue Router 和 Axios 的现代化前端项目模板。
## 🚀 特性
- ⚡️ **Vite** - 极速的构建工具
- 🖖 **Vue 3** - 渐进式 JavaScript 框架
- 🎨 **Element Plus** - 基于 Vue 3 的组件库
- 🗂 **Vue Router** - 官方路由管理器WebHash 模式)
- 📦 **Pinia** - 新一代状态管理
- 🔗 **Axios** - HTTP 请求库(已封装)
- 🎯 **Sass** - CSS 预处理器
- 📁 **规范化目录结构** - views 存放页面components 存放组件
- 🔧 **完整配置** - 包含开发和生产环境配置
## 📦 安装
```bash
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 构建生产版本
npm run build
# 预览生产构建
npm run preview
```
## 📁 项目结构
```
src/
├── api/ # API 接口
│ ├── index.js # API 统一导出
│ └── user.js # 用户相关 API
├── components/ # 公共组件
│ └── HelloWorld.vue # 示例组件
├── router/ # 路由配置
│ └── index.js # 路由主文件
├── stores/ # 状态管理
│ ├── index.js # Pinia 配置
│ └── user.js # 用户状态
├── styles/ # 样式文件
│ ├── index.scss # 主样式文件
│ ├── reset.scss # 重置样式
│ └── variables.scss # 样式变量
├── utils/ # 工具函数
│ └── request.js # HTTP 请求封装
├── views/ # 页面组件
│ ├── Home.vue # 首页
│ └── About.vue # 关于页面
├── App.vue # 根组件
└── main.js # 入口文件
```
## 🔧 配置说明
### 环境变量
- `.env` - 通用环境变量
- `.env.development` - 开发环境变量
- `.env.production` - 生产环境变量
### 路由配置
项目使用 Vue Router 4配置为 WebHash 模式,路由文件位于 `src/router/index.js`
### 状态管理
使用 Pinia 进行状态管理store 文件位于 `src/stores/` 目录。
### HTTP 请求
Axios 已经过封装,包含:
- 请求/响应拦截器
- 错误处理
- Token 自动添加
- 统一的响应格式处理
使用方式:
```javascript
import { http } from '@/utils/request'
// GET 请求
const data = await http.get('/api/users')
// POST 请求
const result = await http.post('/api/users', { name: 'John' })
```
### 样式系统
- 使用 Sass 作为 CSS 预处理器
- 已删除所有浏览器默认样式
- 提供了完整的样式变量和工具类
- 支持 Element Plus 主题定制
## 🎨 组件库
项目集成了 Element Plus所有组件都可以直接使用
```vue
<template>
<el-button type="primary">按钮</el-button>
<el-input v-model="input" placeholder="请输入内容"></el-input>
</template>
```
## 📝 开发规范
1. **页面组件** 放在 `src/views/` 目录
2. **公共组件** 放在 `src/components/` 目录
3. **使用 setup 语法糖** 编写组件
4. **样式使用 Sass** 并遵循 BEM 命名规范
5. **API 请求** 统一放在 `src/api/` 目录
6. **状态管理** 按模块划分,放在 `src/stores/` 目录
## 🚀 部署
```bash
# 构建生产版本
npm run build
# 构建完成后dist 目录包含所有静态文件
# 可以部署到任何静态文件服务器
```
## 📄 许可证
MIT License