关于vue项目的目录结构实践

2,956 阅读4分钟

一个项目,有一个好的目录结构那是必不可少的。当我们项目越来越大时或者多人协作开发时,我们就更应该有一个清晰的目录结构。
好的项目目录结构能够给我们带来诸多的好处,比如:

  • 每个功能或模块单独管理
  • 代码的可读性增强
  • 代码的可维护性增强
  • 易于多人协作之间的沟通 接下来我将分享一下我在平时项目中总结的目录结构,当然这只是我个人的实践,如果大家有更好的意见,请在评论区留言,我们一起交流。

整体结构

首先我们先来看整体结构,我们再逐一介绍每个目录是干什么的。

项目是基于vue-cli4.x创建的,当然我们重点关心的是src目录下的文件。

目录结构

  • assets: 静态资源文件

  1. icons:项目中使用的图标
  2. images:项目中使用的图片
  3. 还可以拓展,项目中使用都的音频,视频等等

当然放在assets最终会被webpack打包,如想资源不被打包,可以放在public文件夹下。

  • bus: 总线传值(eventBus) 如果项目需要共享的状态不多,或者不想依赖于bus传值,当然我们在这不对bus做过多的介绍,个人觉得是非常好用的。

我们在bus文件夹下创建一个index.js文件,然后index.js的内容如上,最终我们只需要在main.js引入bus文件夹(默认找index.js文件),我们就可以使用this.$bus来实现总线传值了

  • components: 一般组件文件夹

当然我们在components文件夹里还会再细分,比如home组件当中使用到的一般组件,我们单独归类于home文件夹,goodsList组件当中使用到的一般组件,我们单独归类于goodsList文件夹,这样我们不会出现在一个文件夹下出现很多.vue文件。

  • config: 项目配置 在config文件夹下,创建一个index.js文件,在index.js当中使用export或者export default导出项目所需要的配置项。
  • directives: 自定义全局指令
    在directive文件夹下,创建一个index.js文件,最后我们只需要在main.js引入directives文件夹,就可以使用自定义的全局指令了。
  • filters: 自定义全局过滤器

在filters文件夹下,创建一个index.js文件,最后我们只需要在main.js引入filters文件夹,就可以使用自定义的全局过滤器了。

  • global: 自定义全局组件

在global文件夹下,创建一个index.js文件,最后我们只需要在main.js引入global文件夹,就可以使用自定义的全局组件了。

  • http: 网络请求和api封装

我们在http文件夹创建index.js,用来封装axios(项目当中使用的ajax库为axios),再创建一个api.js,用来封装所有的请求,如果项目使用的接口过多,我们也可以创建api文件夹,然后分模块来单独管理接口。

  • mock: mock数据 如果项目会使用mock数据,我们可以单独来管理我们的mock数据。
  • pages(views): 路由组件 原本生成的项目叫views,我改了一个名字(个人习惯),在这个文件夹里,我们和components一样,每个路由组件有单独的文件夹包起来,也是避免出现过多的.vue文件,影响可读性。
  • router: 路由配置 这个文件夹可以创建需要动态添加的路由为单独的一个js文件,基础的路由配置还是放在index.js文件中。
  • store: vuex配置 如果项目当中使用到的共享数据不多,可以单独写在index.js,如果数据过多,我们当然还是分模块单独管理。

  • styles:公共样式和修改组件库样式 这个文件夹,我们用来存放公共的样式文件和修改组件库样式的文件。
  • utils: 工具方法 这个文件夹我们用来存放所有的工具方法。

总结

以上就是我在平时项目当中的文件结构划分,当然是个人愚见,希望大佬能够指正错误和一起交流。