【前端日记Day02】新人报道 Vue 项目组第二天:项目上手篇

新人报道 Vue 项目组第二天:熟悉项目结构的血泪史 😂

📅 第二天目标:开组会熟悉项目结构 (认真听课)

组长:在 Vue 项目开发中,尤其是使用 Vue CLIVite + Vue3(通过 Vite 创建的 Vue 项目) 构建的现代前端项目中,开发团队日常编写最多的文件夹结构通常是以下几个:


🧱 Vue 项目中最常写的几个文件夹(目录结构详解)

以下是以一个典型的 Vue 项目为例,列出开发者最常打交道、写得最多代码的文件夹结构


1. src/:项目源码主目录(核心战场)

这是整个项目的“心脏”,几乎所有的业务代码都在这里。主要包含以下子目录和文件:

✅ 常见子目录:

文件夹作用频率
views/存放页面级组件(路由对应页面)⭐⭐⭐⭐⭐
components/存放可复用的 UI 组件⭐⭐⭐⭐⭐
router/路由配置文件(Vue Router)⭐⭐⭐⭐
store/pinia/状态管理模块(Vuex/Pinia)⭐⭐⭐⭐
utils/helpers/工具函数、公共方法⭐⭐⭐⭐
services/api/接口请求封装(Axios/Fetch)⭐⭐⭐⭐
assets/放置静态资源(图片、字体等)⭐⭐⭐
layout/页面布局组件(如顶部导航+侧边栏+内容区)⭐⭐⭐
directives/自定义指令(v-permission, v-debounce)⭐⭐
plugins/插件初始化(如 Element Plus、i18n)⭐⭐

🔧 常见文件:

文件名作用
main.jsmain.ts项目入口文件
App.vue根组件,包裹整个应用
router/index.js路由配置
store/index.jspinia/index.js状态管理配置
utils/request.jsservices/api.js封装 Axios 请求
components/ 下的各种 .vue 文件UI 组件
views/ 下的各种页面 .vue 文件页面组件

2. views/:页面组件集中地(高频操作)

这个文件夹存放的是与路由一一对应的页面组件。

示例结构:

views/
├── dashboard/
│   └── index.vue
├── user/
│   ├── list.vue
│   └── detail.vue
├── login/
│   └── index.vue
└── error/
    └── 404.vue

💡 开发者每天可能都会在这个目录下新建页面、修改页面逻辑、调试UI问题。


3. components/:组件工厂(高频率复用)

存放各种可复用的组件,例如按钮、表格、弹窗、搜索框等。

示例结构:

components/
├── BaseButton.vue
├── TableList.vue
├── SearchInput.vue
├── ModalDialog.vue
├── BreadCrumb.vue
└── LoadingSpinner.vue

📌 优点:提高代码复用性、统一风格
⚠️ 注意:避免组件过度拆分,保持合理的粒度


4. services/api/:接口调用中心(前后端联调核心)

这个文件夹用于封装所有对后端的 HTTP 请求,通常基于 Axios 或 Fetch。

示例结构:

services/
├── userApi.js
├── productApi.js
├── orderApi.js
└── request.js  // 封装统一拦截器

示例代码(request.js):

import axios from 'axios';

const service = axios.create({
  baseURL: process.env.VUE_APP_API,
  timeout: 5000
});

// 请求拦截器
service.interceptors.request.use(config => {
  const token = localStorage.getItem('token');
  if (token) {
    config.headers['Authorization'] = 'Bearer ' + token;
  }
  return config;
});

// 响应拦截器
service.interceptors.response.use(response => {
  return response.data;
}, error => {
  console.error('API Error:', error);
  return Promise.reject(error);
});

export default service;

5. router/:路由管理中枢(Vue Router)

Vue 项目中的路由配置通常位于此目录。

示例结构:

router/
└── index.js

示例代码(Vue3 + Vite):

import { createRouter, createWebHistory } from 'vue-router'
import Dashboard from '../views/dashboard/index.vue'

const routes = [
  {
    path: '/',
    name: 'Dashboard',
    component: Dashboard
  },
  {
    path: '/user/list',
    name: 'UserList',
    component: () => import('../views/user/list.vue')
  }
]

const router = createRouter({
  history: createWebHistory(),
  routes
})

export default router

6. store/pinia/:状态管理仓库(复杂项目必备)

  • Vue2 中常用 Vuex
  • Vue3 Composition API 中推荐使用 Pinia

示例结构(Pinia):

pinia/
├── modules/
│   ├── userStore.js
│   └── cartStore.js
└── index.js

7. utils/:工具箱(开发效率提升利器)

存放通用工具函数,如格式化时间、深拷贝、权限判断等。

示例结构:

utils/
├── formatTime.js
├── deepClone.js
├── validate.js
└── auth.js

8. assets/:静态资源库(非打包资源)

  • 图片、图标、字体文件等
  • 一般不会经过 Webpack 处理的小型静态资源

9. layout/:布局组件(大项目标配)

常见的布局包括:

  • DefaultLayout.vue(带侧边栏)
  • EmptyLayout.vue(无布局页面,如登录页)
  • Header.vue / Sidebar.vue / Footer.vue

🔚 总结:Vue 项目中最常写的文件夹列表

文件夹使用频率主要用途
src/views/⭐⭐⭐⭐⭐页面组件
src/components/⭐⭐⭐⭐⭐可复用组件
src/services/api/⭐⭐⭐⭐接口调用
src/router/⭐⭐⭐⭐路由管理
src/store/pinia/⭐⭐⭐⭐状态管理
src/utils/⭐⭐⭐⭐工具函数
src/layout/⭐⭐⭐布局组件
src/assets/⭐⭐⭐静态资源
src/directives/⭐⭐自定义指令
src/plugins/⭐⭐插件注册

掌握这些文件夹的组织方式和职责划分,不仅能让你写出结构清晰、易于维护的 Vue 项目,还能大大提升团队协作效率!


📌 推荐阅读


如果你是刚入行的程序员、正在找工作的同学,或者想提升工作效率的工程师,强烈建议你熟练掌握这些常见文件夹的使用方式,它们将成为你职业生涯中最重要的武器之一。💪

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈前端老曹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值