# vue-uniapp-v1-template
**Repository Path**: mic-HAO/vue-uniapp-v1-template
## Basic Information
- **Project Name**: vue-uniapp-v1-template
- **Description**: 一个基于 Vue3、TypeScript、Vite 和 TailwindCSS 的现代化 uni-app 开发模板。
- **Primary Language**: JavaScript
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 1
- **Created**: 2025-04-02
- **Last Updated**: 2025-09-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Vue3 UniApp 项目模板
一个基于 Vue3、TypeScript、Vite 和 TailwindCSS 的现代化 uni-app 开发模板。
## 🌟 特性
- 🚀 基于 Vue3 + Vite 构建,提供极速的开发体验
- 📦 使用 TypeScript 开发,提供更好的类型支持
- 🎨 集成 TailwindCSS,提供原子化 CSS 支持
- 📱 支持多端开发(H5、小程序、App)
- 🔧 完整的开发工具链支持
- 🎯 封装常用组件和工具函数
- 🗂️ 简单的用户状态管理
- 🌐 完善的 HTTP 请求封装,支持拦截器
- 📋 丰富的类型定义和工具函数
- 🎛️ Prettier 代码格式化
- 🔒 完整的表单验证工具
## 🛠️ 技术栈
- **核心框架**:Vue3 + Composition API
- **开发语言**:TypeScript
- **构建工具**:Vite
- **UI 框架**:uview-plus + uni-ui
- **CSS 框架**:TailwindCSS + SCSS
- **状态管理**:简单的响应式状态管理
- **代码规范**:Prettier + TypeScript
- **工具库**:dayjs + clipboard
- **版本控制**:Git
## 📁 项目结构
```
vue-uniapp-v1-template/
├── src/ # 源代码目录
│ ├── api/ # API 接口管理
│ │ └── index.ts # API 接口定义
│ ├── common/ # 公共工具
│ │ ├── index.ts # 通用工具函数
│ │ └── token.ts # Token 管理
│ ├── components/ # 公共组件
│ │ ├── Empty/ # 空状态组件
│ │ ├── Loading/ # 加载组件
│ │ ├── Modal/ # 弹窗组件
│ │ ├── newImage/ # 图片组件
│ │ ├── newTable/ # 表格组件
│ │ ├── packageList/ # 包列表组件
│ │ └── tabbar/ # 自定义tabbar
│ ├── pages/ # 页面文件
│ │ ├── home/ # 首页
│ │ ├── login/ # 登录页
│ │ └── my/ # 个人中心
│ ├── static/ # 静态资源
│ │ ├── home/ # 首页相关图片
│ │ └── tabBar/ # tabbar图标
│ ├── types/ # 类型定义
│ │ └── global.d.ts # 全局类型定义
│ ├── utils/ # 工具函数
│ │ ├── config.ts # 配置文件
│ │ ├── format.ts # 格式化工具
│ │ ├── https.ts # HTTP 请求封装
│ │ ├── user.ts # 用户状态管理
│ │ └── validate.ts # 验证工具
│ ├── App.vue # 应用入口组件
│ ├── main.ts # 主入口文件
│ ├── pages.json # 页面路由配置
│ └── uni.scss # 全局样式
├── .prettierrc.js # Prettier 配置
├── package.json # 项目依赖配置
├── tailwind.config.js # TailwindCSS 配置
├── tsconfig.json # TypeScript 配置
├── vite.config.ts # Vite 配置文件
└── README.md # 项目说明文档
```
## 🚀 快速开始
### 环境要求
- Node.js >= 16.0.0
- npm >= 7.0.0 或 yarn >= 1.22.0
- HBuilderX(用于小程序开发)
### 安装依赖
```bash
# 使用 npm
npm install
# 使用 yarn
yarn install
```
### 开发环境运行
```bash
# H5 开发
npm run dev:h5
# 微信小程序开发
npm run dev:mp-weixin
# App 开发
npm run dev:app
```
### 生产环境构建
```bash
# H5 构建
npm run build:h5
# 微信小程序构建
npm run build:mp-weixin
# App 构建
npm run build:app
```
## 📝 功能特性详解
### 1. 多端适配
支持多端开发,包括:
- H5
- 微信小程序
- App(Android/iOS)
- 支付宝小程序
- 百度小程序
- 字节跳动小程序
### 2. 组件系统
内置多种常用组件:
- **newImage 组件**:支持加载状态、错误处理的图片组件
- **newTable 组件**:功能完整的表格组件
- **Loading 组件**:多种样式的加载组件
- **Modal 组件**:灵活配置的弹窗组件
- **Empty 组件**:空状态展示组件
- **Tabbar 组件**:自定义底部导航栏
### 3. 用户状态管理
使用简单的用户状态管理,支持:
- 用户信息存储
- 登录状态管理
- 本地存储持久化
- TypeScript 类型支持
### 4. HTTP 请求封装
完善的网络请求解决方案:
- 请求/响应拦截器
- 自动 Token 管理
- 错误统一处理
- 支持多种请求方式
- TypeScript 类型推断
### 5. 工具函数库
丰富的工具函数:
- **格式化工具**:时间、金额、文件大小等格式化
- **验证工具**:手机号、邮箱、身份证等验证
- **通用工具**:防抖、节流、深拷贝等
### 6. 代码规范
完整的代码规范体系:
- Prettier 代码格式化
- TypeScript 类型检查
## 📚 开发指南
### 1. 新增页面
1. 在 `pages` 目录下创建页面文件
2. 在 `pages.json` 中配置路由
```json
{
"path": "pages/example/index",
"style": {
"navigationBarTitleText": "示例页面"
}
}
```
### 2. 使用组件
#### 表格组件
```vue
```
#### 加载组件
```vue
```
#### 弹窗组件
```vue
```
### 3. 用户状态管理
```typescript
// 使用用户状态
import { useUser } from "@/utils/user";
const { userInfo, isLoggedIn, login, logout, initUserInfo } = useUser();
// 登录
login(token, userInfo);
// 获取用户信息
const info = userInfo;
const loggedIn = isLoggedIn();
// 退出登录
logout();
```
### 4. HTTP 请求
```typescript
import { httpClient } from "@/utils/https";
import type { ApiResponse, UserInfo } from "@/types/global";
// GET 请求
const getUserInfo = async () => {
const response =
await httpClient.get>("/api/user/info");
return response.result;
};
// POST 请求
const updateUser = async (data: Partial) => {
return await httpClient.post("/api/user/update", data);
};
```
### 5. 工具函数
```typescript
import { formatDate, formatMoney, isValidPhone } from "@/utils/format";
import { validatePhone, isEmpty } from "@/utils/validate";
// 格式化
const date = formatDate(new Date(), "YYYY-MM-DD");
const money = formatMoney(12345.67); // ¥12,345.67
// 验证
const isValid = isValidPhone("13800138000"); // true
```
### 6. 代码规范
```bash
# 代码格式化
npm run format
# 类型检查
npm run type-check
```
## 🤝 贡献指南
1. Fork 本仓库
2. 创建新的特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交您的更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建 Pull Request
## 📄 许可证
本项目采用 [MIT](LICENSE) 许可证
## 👥 作者
- 作者:[Mr.Hao]
- 邮箱:[19931845446@163.com]
## 🙏 致谢
感谢所有为本项目做出贡献的开发者们!