
书接上回,这次我们来聊一下,我之前项目中关于 vue 的架构实践,也欢迎大佬们指出不足。
我们先看一下整体的目录结构:
1 | . |
首先对于视图层分成了三块:components、 layouts 和 views:
components 为公共组件,主要包括原子组件(比如 Button、Modal等)和业务公用组件,从深度上,此处的目录层级结构应该尽量扁平,不应该有很深的层级;
layouts 主要用来负责基本的布局,每个页面都会是 layout 组件的子集,BasicLayout是页面基本布局,会是用得最多的布局,BlankLayout是空白页面,方便处理一些特殊页面;
views 主要是路由页面组件,。
router中是页面路由,最上层的路由的 Component 会是layout 中的 Component,其 children 则是 views 中的 Component :
1 | [ |
styles 下会是所有全局的样式,比如全局的变量、mixin 以及修改的ant-design的样式等。
所有的接口都会放在Api目录下,做统一管理。utils下面的http 目录是对 axios 的二次封装,集成了拦截器、统一错误处理、 token 处理等功能。
1 | const handleError = (message) => { |
store的管理按照modules进行拆分,根级别的只放类似globalLoading这种状态管理,其他的状态管理按照业务拆分成 modules。
1 | // root store |
constants主要存放常量,用于 store 的常量放在单独文件内,其他常量的管理也按业务进行拆分。
assets主要存放代码以外的静态资源,比如图片、视频等,资源需要按业务进行分类,方便管理这些静态资源。