src/
├── api/ # API 接口相关
├── assets/ # 静态资源
├── components/ # 通用组件
├── composables/ # 组合式函数
├── constants/ # 常量定义
├── directives/ # 自定义指令
├── hooks/ # 自定义钩子
├── layout/ # 布局组件
├── router/ # 路由配置
├── services/ # 业务服务层
├── store/ # 状态管理
├── styles/ # 样式文件
├── types/ # TypeScript 类型定义
├── utils/ # 工具函数
├── views/ # 页面组件
├── App.vue # 根组件
├── main.ts # 入口文件
└── vite-env.d.ts # Vite 环境类型声明
api/
├── user.ts # 用户相关接口
├── product.ts # 产品相关接口
└── index.ts # API 统一导出
作用:集中管理所有 API 接口调用特点:
- 按业务模块划分接口文件
- 统一处理请求和响应拦截(拦截器interceptors:axios.create(config).interceptors.request.use 和 axios.create(config).interceptors.response.use)
- 支持 TypeScript 类型定义
assets/
├── images/ # 图片资源
├── icons/ # 图标资源
├── fonts/ # 字体文件
└── styles/ # 全局样式
作用:存放项目中使用的静态资源特点:
- 支持 Vite 静态资源处理
- 可通过 import 直接引用
- 支持自动优化和压缩
components/
├── common/ # 通用基础组件
├── business/ # 业务组件
└── layout/ # 布局组件
作用:存放可复用的 Vue 组件特点:
- 支持自动注册(通过 unplugin-vue-components)
- 组件化开发提高复用性
- 支持 TypeScript 类型检查
composables/
├── useCounter.ts # 计数器逻辑
├── useApi.ts # API 调用逻辑
└── useModal.ts # 模态框逻辑
作用:存放组合式函数,实现逻辑复用特点:
- 基于 Vue 3 Composition API
- 逻辑关注点分离
- 更好的类型推导
router/
├── index.ts # 路由配置入口
├── routes.ts # 路由表定义
└── guards.ts # 路由守卫
store/
├── index.ts # Pinia 实例创建
├── modules/ # 模块化状态
│ ├── user.ts # 用户状态
│ └── app.ts # 应用状态
作用:使用 Pinia 进行状态管理特点:
- 模块化状态管理
- 更好的 TypeScript 支持
- 自动导入支持
views/
├── Home.vue # 首页
├── About.vue # 关于页
└── user/ # 用户相关页面├── Login.vue # 登录页└── Profile.vue # 个人资料页
作用:存放页面级组件特点:
utils/
├── request.ts # 网络请求封装
├── storage.ts # 本地存储工具
└── format.ts # 格式化工具
作用:提供通用工具函数特点:
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'
import router from './router'
import './style.css'const app = createApp(App)app.use(createPinia())
app.use(router)
app.use(ElementPlus)app.mount('#app')
作用:应用入口文件,初始化 Vue 应用主要功能:
- 创建 Vue 应用实例
- 注册 Pinia 状态管理
- 注册 Vue Router
- 注册 Element Plus
- 挂载应用
<template><el-config-provider :locale="zhCn"><router-view /></el-config-provider>
</template><script setup lang="ts">
import { zhCn } from 'element-plus/dist/locale/zh-cn.mjs'
</script><style scoped>
/* 全局样式 */
</style>
作用:根组件,应用的入口组件特点:
- 配置 Element Plus 国际化
- 提供路由视图容器
- 可设置全局样式
/// <reference types="vite/client" />declare module '*.vue' {import type { DefineComponent } from 'vue'const component: DefineComponent<{}, {}, any>export default component
}
作用:Vite 环境的 TypeScript 类型声明特点:
- 提供 Vite 客户端类型
- 声明 Vue 单文件组件类型
- 支持 TypeScript 类型检查