# vue3+vant4+vite+pinia+ts+axios **Repository Path**: personal-projects_best/vue3-vant4-vite-pinia-ts-axios ## Basic Information - **Project Name**: vue3+vant4+vite+pinia+ts+axios - **Description**: 这是一个基于 Vue3 + TypeScript + Vite + Vant 的移动端项目模板,集成了多个实用功能和最佳实践,帮助你快速开发高质量的移动端应用。本模板提供完整的用户认证流程、状态管理示例和 Mock 数据服务,可以直接用于实际项目开发。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: http://47.109.203.182/openSource/v3-template-mobile/#/ - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2025-03-11 - **Last Updated**: 2025-12-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Vue3 移动端项目模板 ## 项目介绍 这是一个基于 Vue3 + TypeScript + Vite + Vant 的移动端项目模板,集成了多个实用功能和最佳实践,帮助你快速开发高质量的移动端应用。本模板提供完整的用户认证流程、状态管理示例和 Mock 数据服务,可以直接用于实际项目开发。 ### 技术栈 - 核心框架:Vue 3 - 开发语言:TypeScript - 构建工具:Vite - UI 组件库:Vant 4 - 状态管理:Pinia - 路由管理:Vue Router - 工具库:VueUse - 移动端适配:postcss-pxtorem + lib-flexible ## 快速开始 ### 环境准备 - Node.js >= 16.0.0 - npm >= 7.0.0 ### 安装依赖 ```bash npm install ``` ### 开发服务 ```bash npm run dev ``` 启动后访问:http://localhost:5177 ### 项目打包 ```bash npm run build ``` ## 项目特性 - 📱 移动端适配:使用 postcss-pxtorem 实现响应式布局 - 🔥 最新技术栈:使用 Vue3/Vite4/Pinia/TypeScript 等前端前沿技术 - 📦 组件自动导入:基于 unplugin-vue-components 实现 - 🎨 UI 组件库:集成 Vant4,提供丰富的移动端组件 - 💪 TypeScript:应用程序级 JavaScript 的语言支持 - 🔢 状态管理:集成 Pinia,轻量级状态管理方案 - 📱 常用布局:提供移动端常用布局示例 - 🔐 用户认证:完整的登录注册流程 - 🎯 Mock 数据:集成 Mock 服务,快速开发 ## 目录结构 ``` ├── public/ # 静态资源 ├── src/ # 源代码 │ ├── assets/ # 静态资源 │ ├── components/ # 公共组件 │ ├── router/ # 路由配置 │ ├── stores/ # 状态管理 │ ├── types/ # 类型定义 │ ├── views/ # 页面组件 │ ├── mock/ # Mock 数据 │ ├── service/ # API 服务 │ ├── utils/ # 工具函数 │ ├── App.vue # 根组件 │ └── main.ts # 入口文件 ├── index.html # HTML 模板 ├── tsconfig.json # TypeScript 配置 ├── vite.config.ts # Vite 配置 └── package.json # 项目配置 ``` ## 开发指南 ### 用户认证 项目内置了完整的用户认证流程,包括: 1. 登录/注册功能 ```typescript // 用户登录 const { token, userInfo } = await userApi.login({ username: 'admin', password: '123456' }); // 获取用户信息 const userInfo = await userApi.getUserInfo(); ``` 2. Token 管理 ```typescript // 存储 token localStorage.setItem('token', token); // 检查登录状态 const checkLoginStatus = () => { const token = localStorage.getItem('token'); return !!token; }; ``` ### 状态管理 使用 Pinia 进行状态管理: 1. 定义 Store ```typescript // stores/user.ts import { defineStore } from 'pinia'; export const useUserStore = defineStore('user', { state: () => ({ userInfo: null, isLoggedIn: false }), actions: { setUserInfo(info) { this.userInfo = info; this.isLoggedIn = true; } } }); ``` 2. 在组件中使用 ```typescript import { useUserStore } from '@/stores/user'; const userStore = useUserStore(); userStore.setUserInfo(userInfo); ``` ### Mock 数据 项目集成了 Mock 服务,可以快速模拟 API 响应: 1. 在 `src/mock` 目录下添加 Mock 数据 ```typescript // mock/user.ts export default { 'POST /api/login': (req) => { return { code: 0, data: { token: 'mock-token', userInfo: { username: 'admin', role: '管理员' } } }; } }; ``` ### 组件开发 1. Vant 组件使用 ```vue ``` 2. 自定义组件 ```vue ``` ### 样式开发 - 支持 CSS 预处理器 - 移动端适配已配置,直接使用 px 单位即可 - 建议使用 Vant 设计规范 ```css .container { padding: 16px; /* 会自动转换为 rem */ font-size: 14px; } ``` ## 最佳实践 1. TypeScript 规范 - 始终为组件的 props 和响应式数据定义类型 - 使用接口定义 API 响应数据结构 - 避免使用 any 类型 2. 性能优化 - 合理使用异步组件 - 图片资源使用 CDN - 控制依赖包大小 3. 移动端适配 - 使用 rem 单位 - 注意点击区域大小 - 考虑弱网环境 4. 代码风格 - 使用组合式 API - 遵循 Vue3 最佳实践 - 保持组件颗粒度 ## 相关文档 - [Vue3 文档](https://cn.vuejs.org/) - [Vite 文档](https://cn.vitejs.dev/) - [Vant 文档](https://vant-ui.github.io/vant/#/zh-CN) - [TypeScript 文档](https://www.typescriptlang.org/) - [Pinia 文档](https://pinia.vuejs.org/)