Vue.js 项目目录结构设计与工程化规范指南

夏婷吖_1549

夏婷吖_1549

2026-05-15

599人浏览

原创

vue.js项目目录结构应按功能职责、业务域、静态资源、状态管理与工程化配置五方面分层设计:src/api/集中接口封装,src/utils/存放纯函数工具,src/composables/组织组合式函数,src/modules/下按业务域(如user、dashboard)划分views/components/services/store,public/与src/assets/严格区分静态资源处理方式,pinia store与api解耦并通过services协调,vite.config.ts与tsconfig.json统一配置路径别名并启用eslint校验。

vue.js 项目目录结构设计与工程化规范指南 - php中文网

一、按功能职责划分核心目录

Vue.js 项目目录结构应以功能职责为第一划分依据,避免将不同性质的文件混杂在单一目录中。这种结构能显著降低新成员的理解成本,并支持模块间清晰的依赖边界。

1、在 src/ 目录下创建 api/ 子目录,用于集中存放所有接口请求封装文件,每个业务域(如 user、order、product)对应独立的 JS 或 TS 文件。

2、新建 utils/ 目录,仅存放纯函数工具,例如日期格式化、深克隆、URL 参数解析等,禁止在此目录中引入 Vue 实例或组件逻辑。

3、建立 composables/ 目录(Vue 3 推荐),用于存放组合式函数,每个文件导出一个具名函数,如 useScrollPosition 或 useFormValidation。

4、将全局样式资源统一归入 assets/styles/,其中包含 base.css(重置与基础变量)、theme.css(主题色定义)、mixins.scss(Sass 混入)。

二、按业务域组织页面与组件

业务逻辑强相关的代码应聚合在独立的业务域目录内,实现高内聚、低耦合,便于横向扩展和团队并行开发。

1、在 src/modules/ 下为每个主业务创建子目录,例如 user/、dashboard/、settings/。

2、每个业务域目录内包含 views/(页面级组件)、components/(该业务专用组件)、services/(领域服务逻辑)、store/(Pinia store 模块文件)。

3、业务组件命名须带前缀,如 UserProfileCard.vue、DashboardQuickStats.vue,禁止使用通用名如 Card.vue 或 Stats.vue。

4、路由配置文件 routes.ts 放置于对应业务域根目录下,通过动态 import 实现路由级代码分割。

三、静态资源与构建资产分层管理

静态资源需区分是否参与构建流程,避免误打包或路径失效问题;同时应按类型与用途严格分层,确保可维护性与部署一致性。

1、public/ 目录仅存放不经过 Vite/Webpack 处理的资源,如 favicon.ico、robots.txt、manifest.json,其路径在运行时与根路径完全一致。

2、src/assets/ 下设 images/、icons/、fonts/ 三级子目录,所有图片引用必须使用相对路径或别名(如 @/assets/images/logo.svg)。

Json Schema Toolkit
Json Schema Toolkit

使用 JSON Schema 验证 JSON 数据,从示例 JSON 生成 schema,并将其转换为 TypeScript 接口、Python 数据类或 Markdown 文档。

下载

3、图标资源优先采用 SVG 单文件组件形式封装,存于 src/components/icons/,每个 SVG 图标导出为独立组件,如 IconUser.vue。

4、字体文件统一放入 src/assets/fonts/,并在 assets/styles/base.css 中通过 @font-face 声明,禁止在组件内重复声明。

四、状态管理与接口请求解耦设计

PINIA 状态管理与 API 请求层必须保持单向数据流,状态变更仅由显式 action 触发,API 层不得直接修改 store,二者通过 service 层协调。

1、每个业务域的 Pinia store 文件(如 userStore.ts)存放于对应模块的 store/ 子目录中,store 内部不引用任何组件或路由实例。

2、api/ 目录下的请求文件(如 userApi.ts)只负责返回 Axios Promise,不处理响应数据映射或错误弹窗逻辑。

3、新增 services/ 目录作为协调层,每个 service 文件(如 userService.ts)调用对应 api 并将结果适配为 store 所需格式,同时触发相关 action。

4、所有 API 请求必须携带明确的请求标识符(如 requestId),用于调试追踪与请求取消控制,该标识由 service 层统一注入。

五、工程化配置与路径别名标准化

路径别名是提升导入可读性与重构安全性的关键手段,必须覆盖全部高频引用路径,并在 TypeScript 类型系统中同步声明。

1、在 vite.config.ts 的 resolve.alias 中定义以下标准别名:@/ → src/、@api/ → src/api/、@utils/ → src/utils/、@stores/ → src/stores/。

2、在 tsconfig.json 的 compilerOptions.paths 中配置完全相同的别名映射,确保 TS 类型检查与 IDE 跳转正常工作。

3、禁用绝对路径硬编码,所有跨目录导入必须使用别名,例如禁止写 ../../../utils/date,必须写 @utils/date。

4、在 ESLint 配置中启用 import/first 与 import/no-absolute-path 规则,对违规导入进行实时报错拦截。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vue js vue.js

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2223

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

4763

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

5890

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

5358

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

763

5

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

2026.02.13

272

17

TypeScript全栈项目架构与接口规范设计
TypeScript全栈项目架构与接口规范设计

本专题面向全栈开发者,系统讲解基于 TypeScript 构建前后端统一技术栈的工程化实践。内容涵盖项目分层设计、接口协议规范、类型共享机制、错误码体系设计、接口自动化生成与文档维护方案。通过完整项目示例,帮助开发者构建结构清晰、类型安全、易维护的现代全栈应用架构。

2026.02.25

480

17

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

2026.03.13

331

19

TypeScript 全栈开发进阶指南
TypeScript 全栈开发进阶指南

面向有 JavaScript 基础的开发者,深入讲解 TypeScript 的类型系统与全栈开发实践。

2026.06.03

246

29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app快速上手
uni-app快速上手

共0课时 | 0人学习

Vue 教程
Vue 教程

共42课时 | 16.9万人学习

Vue3.x 工具篇--十天技能课堂
Vue3.x 工具篇--十天技能课堂

共26课时 | 2.5万人学习