每个项目在最开始搭建的时候都需要划分若干个模块,确认项目规范,下面就让我们来讨论一下项目中如何划分模块。
本文还是基于vue-cli,代码GitHub - wangkai123456/learnVueAdmin at v2
大体思路
当拿到一个项目的时候我们首先要去想,我们会用到哪些东西,比如element-ui、vuex等等,还会用到vue本身的一些功能比如组件化、过滤器等等这些,所以我们基于我们用到的这些东西划分出来不同的模块。
组件模块
在做项目的时候我们可能会需要若干的组件,我们通常会把组件放到一个统一的目录(src/components)里面统一管理,然后会把组件注册成全局组件。然后在main(入口文件)引入。在使用的时候就不需要引入在注册组件,直接使用即可。
组件名一般与name一致
在index里面统一注册成全局组件,这里使用的语法不做过多解释,主要理解划分思路。
使用
插件模块
我们项目中会引入若干大大小小的第三方插件比如element-ui、富文本、地图等等,通常这些会直接main.js(项目入口文件)文件直接引入这样的话会导致main文件异常的臃肿,所以我们会编写一个插件模块,来统一导出我们用到的插件,然后在main文件直接引入。在src目录下新建plugins目录,然后根据现有的插件分别创建几个文件比如element-ui 就创建一个element-ui文件
统一导出所有插件
过滤器模块
项目中可能会有时间戳转换成时间或者百分位加逗号等,这类需求大多都是通过过滤器来完成,所以我们需要一个过滤器模块,在src目录下新建一个filters目录,每个过滤器就是一个文件,然后在index里面统一注册成全局过滤器,最后在main(入口文件)引入。下面以时间过滤器为例
编写时间过滤器(可能有点乱😢,主要看思路)
在index里面统一注册,使用的时候,不需要引入和注册
通用方法模块
项目中会有一些通用的逻辑可能很多个文件都需要,所以我们把那些通用方法都放到一个目录下,然后配置一下webpack的配置在需要的页面引入使用。在src目录下新建utils目录,根据不同的功能编写不同的文件然后统一导出,下面以分页方法为例
编写分页功能
index 文件统一导出
由于我们会在不同的文件里经常使用这些通用方法,所以我们在webpack里面配置一个通用的路径
页面使用
API(网络请求)模块
我们把所有的网络请求按照功能分模块分别放在src下的api目录下,比如登录功能属于Account模块,那么我们就在api目录下新建Account文件,然后在index里统一导出。
Account文件
index文件统一导出api,然后我们想配置utils的路径一样配置一下api 的路径。api模块里面的函数,使用和utils一致
统一在main(入口文件)引入
总结
以上就是一些项目的基础配置,当然还有很多没有拿出来讨论,比如路由,vuex等等这些,在实际做项目的时候还会遇到很多可以单独拿出来的模块,基本思路就是按照功能划分,然后统一导出,方便实用。大家有哪些地方希望一起讨论的欢迎留言。