关于vue项目的文件组织
最近参与了好几个项目,都是以vue-cli脚手架生成的项目,参与完成之后,有点关于项目文件组织的看法,很想聊聊。
关于目录
由vue-cli脚手架生成的项目,都会生成一个基本的目录格式。
类似于这种,项目中我们还会用到vuex,所以多数情况下,我们会在src目录下,创建一个store文件夹,存放关于vuex数据。
然后就是项目文件了。
- 项目中,会创建如下多个目录,进行业务组织
- api: 存放所有接口调用的文件
- assets: 图片、css等
- components: 组件,纯组件,基本上不包含业务代码
- icons:存放项目中用到的icon图标,svg文件
- plugins:存放第三方插件,诸如UI插件element-ui, 图标插件echarts等等
- resource: 存放一些额外的资源文件(很多项目未必会有),类似于echarts绘制地图所需的json文件
- utils:工具存储,axios拦截器,常量文件等等
- vendor: 基本上很少用到,我仅仅存放了一个table2excel的js导出文件,也可以存入utils
- view或者pages: 存放真正的业务文件
如此,基本上够项目使用了,至少到目前为止我是够用的。
关于业务代码文件view,还需要多说一下,一定不能所有业务组件直接就丢在view里面,会在下面的关于代码风格细说。
关于代码风格
vue.js官方其实推出了官方风格指南,不知道是不是vuer是不是都看了,或者看了之后,是否去遵守。即使不遵守他官方风格指南,那是不是理解了他出这一份指南的良苦用心,而形成了自己独特的代码组织风格。
如果什么都没做,依然属于随心所欲,那么还是去看看,仔细看看。
- 介绍一下我的代码组织,基本上以业务导航为基本的指导方向,每一个菜单为一个独立文件夹,文件夹首字母大写
- User: 用户管理模块,基本上包括登录、注册、找回密码
- 404:提供一个404页面,属于业务友好
- Home: 首页,基本上每个项目都必然有首页的存在,不管首页内容是啥
- ...
剩下的就是每一个菜单一个文件夹,点击该菜单所进入的页面,命名为index.vue,唯一的首字母小写的.vue文件,其他的所有vue文件组织,遵循官方风格指南。
关于代码规范
既然说到了代码风格,那么必然涉及到代码规范的问题,尤其是在多人协同开发的情况下,如果每个人所用的ide不一样,又没有统一的代码规范,那么利用svn或者git做代码托管之后,更新别人的代码和提交自己的代码,将是一种无比痛苦的事情。
举一个简单的例子,关于代码缩进,有人用两个空格,有人用4个空格,然后拉去代码之后,在自己的ide打开,遇到安装了prettier插件,那是不是想死?
所以有必要统一代码规范,尤其是同一个公司的项目。
那么,不得不说eslint了,项目启动之初,安装eslint,并修正ide的prettier插件的格式化规则,必不可少,虽然这必然是一个痛苦的过程,但是好在只要遵守同一份代码规范,那么这就是一劳永逸的工作。
关于vue项目的文件组织的更多相关文章
- vue-cli快速构建Vue项目
vue-cli是什么? vue-cli 是vue.js的脚手架,用于自动生成vue.js模板工程的. vue-cli怎么使用? 安装vue-cli之前,需要先装好vue 和 webpack npm i ...
- requirejs + vue 项目搭建2
上篇是年后的项目搭建的,时间比较仓促,感觉有点low 1.gulp-vue 文件对公用js的有依赖,以后别的同事拿去搭其他项目,估计会被喷 2.不支持vue-loader一样写模版语言和es6语法 最 ...
- vue项目目录介绍
Vue项目目录 初始化项目 vue init webpack []projectname] cd [projectname] npm install vue run dev 目录树 +---build ...
- Vue 项目实战系列 (一)
最近一直在学习Vue,基本的文档看完后就需要进行具体的项目进行练手了,本系列文章主要是将我学习过程记录下来,和大家一起学习交流. 我在git上找到了一个淘票票的Vue项目,项目地址: https:// ...
- 简单vue项目脚手架(vue+webpack2.0+vuex+vue-router)
github地址 使用技术栈 webpack(^2.6.1) webpack-dev-server(^2.4.5) vue(^2.3.3) vuex(^2.3.1) vue-router(^2.5.3 ...
- vue项目构建与实战
关于 微信公众号:前端呼啦圈(Love-FED) 我的博客:劳卜的博客 知乎专栏:前端呼啦圈 前言 由于vue相对来说比较平缓的学习过程和新颖的技术思路,使其受到了广大前后端开发者的青睐,同时其通俗易 ...
- Vue项目搭建完整剖析全过程
Vue项目搭建完整剖析全过程 项目源码地址:https://github.com/ballyalex 有帮助的话就加个星星呗~! 项目技术栈:vue+webpack+bower+sass+axios ...
- 利用webpack构建vue项目
快速搭建vue项目 一,确认自己有无搭建好node以及npm环境,这些是前提,具体安装方法可参考https://nodejs.org/en/. 二,开始构建项目. 第1步:新建一个文件夹,随意命名. ...
- 如何快速把 Vue 项目升级到 webpack3
由于 webpack3升级后,新增了 Scope Hositing(作用域提升) 功能,据说是对 js的性能提升很大.因此,我们做了一个测试对比,就是 webpack3和 webpack1/2 的性能 ...
随机推荐
- Cesium学习系列汇总
内容比较多,完整看完需要大概10分钟,废话不多说,撸起袖子,加油干!!! 1.前言 按照套路,先介绍一下什么是Cesium. Cesium ['siːzɪəm]是JavaScript开源库,通过Ces ...
- Xshell登录Vagrant方式
Xshell登录Vagrant方式 我上一篇文章 介绍了vagrant 如何创建虚拟机集群,在上篇文章的基础上,用xshell 登录 虚拟机发现 默认是无法使用账号密码登录root账号,只能使用vag ...
- 如何从社区的patchwork下载补丁并应用到当前内核源码?
1. 下载 wget http://patchwork.ozlabs.org/series/111111/mbox 2. 打补丁 git am mbox
- PHP mysql_num_rows() 函数 返回结果集中行的数目。
定义和用法 mysql_num_rows() 函数返回结果集中行的数目. 语法 mysql_num_rows(data) 参数 描述 data 必需.结果集.该结果集从 mysql_query() 的 ...
- ndroid如何监听开机广播和关机广播
需求描述:有些时候,我们需要我们的程序在开机后能自动运行,在系统即将关闭时,能写入一些记录到指定的文件里. 一.开机广播监听: Android系统启动完成后会发出启动完成广播(android.inte ...
- protobuf ubuntu 18.04环境下安装
(t20190518) luo@luo-All-Series:~/MyFile$ (t20190518) luo@luo-All-Series:~/MyFile$ (t20190518) luo@lu ...
- mvc 接收json 集合 实例
开始测试了一下,后台用实体类接收,所报异常如下 无奈之下只能传为字符串,然后字符串转json 页面代码如下 后台controller如下:
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_08-freemarker基础-空值处理
把stus注释掉 正常访问就会报错 第20行 这里的stus为空,所以造成了这个错误. 非空判断 不为空用双问号来判断 <#if stus??><#list stus as stu& ...
- Qt编写安防视频监控系统5-视频回放
一.前言 一般视频回放都会采用GB28181国标来处理,这样可以保证兼容国内各大厂家的NVR,毕竟在同一的国家标准下,大家都会统一支持国标的,就不需要根据各个厂家的SDK来做兼容处理,烦得很,厂家越来 ...
- EasyUI入门配置
EasyUI是一款基于jQuery的前端插件,简化了开发,免去编写复杂的js和css即可实现不错的显示效果. 基本配置: index.html <!DOCTYPE html> <ht ...