整体目录结构
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 环境类型声明
核心目录
1 api/ 目录
api/ ├── user.ts # 用户相关接口 ├── product.ts # 产品相关接口 └── index.ts # API 统一导出
2 assets/ 目录
assets/ ├── images/ # 图片资源 ├── icons/ # 图标资源 ├── fonts/ # 字体文件 └── styles/ # 全局样式
3 components/ 目录
components/ ├── common/ # 通用基础组件 ├── business/ # 业务组件 └── layout/ # 布局组件
4 composables/ 目录
composables/ ├── useCounter.ts # 计数器逻辑 ├── useApi.ts # API 调用逻辑 └── useModal.ts # 模态框逻辑
5 router/ 目录
router/ ├── index.ts # 路由配置入口 ├── routes.ts # 路由表定义 └── guards.ts # 路由守卫
6 store/ 目录
store/ ├── index.ts # Pinia 实例创建 ├── modules/ # 模块化状态 │ ├── user.ts # 用户状态 │ └── app.ts # 应用状态
7 views/ 目录
views/ ├── Home.vue # 首页 ├── About.vue # 关于页 └── user/ # 用户相关页面├── Login.vue # 登录页└── Profile.vue # 个人资料页
8 utils/ 目录
utils/ ├── request.ts # 网络请求封装 ├── storage.ts # 本地存储工具 └── format.ts # 格式化工具
核心文件
1 main.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')
2 App.vue
<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>
3 vite-env.d.ts
/// <reference types="vite/client" />declare module '*.vue' {import type { DefineComponent } from 'vue'const component: DefineComponent<{}, {}, any>export default component
}