关于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 的性能 ...
随机推荐
- jinja2-宏,include, import
一 宏 宏类似常规编程语言中的函数.它们用于把常用行为作为可重用的函数,取代 手动重复的工作.如果宏在不同的模板中定义,你需要首先使用 import,比如 {% macro input(name, v ...
- SpringMVC返回Map类型转换成JSON失败
错误信息:WARN DefaultHandlerExceptionResolver:380 - Failed to write HTTP message: org.springframework.ht ...
- 【SpringBoot】转载 springboot使用thymeleaf完成数据的页面展示
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/weixin_36380516/artic ...
- kotlin 之单表达式函数
fun d(x:Int):Int=x* 如果函数体只有一条语句,而且是return语句,那么可以省略大括号以及return关键字,
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_14-页面静态化-数据模型-远程请求接口
okhttp的官方文档: https://square.github.io/okhttp/ github的地址 https://github.com/square/okhttp/ 如何远程请求轮播图的 ...
- sklearn常见分类器(二分类模板)
# -*- coding: utf-8 -*- import pandas as pd import matplotlib matplotlib.rcParams['font.sans-serif'] ...
- Linux 文件操作相关常用命令
1.创建文件夹 [root@izwz9148jq0xmzrb36r113z 20190726]# mkdir aaa //创建aaa文件夹 2.创建文件 [root@izwz9148jq0xmzrb3 ...
- JAVA WEB开放中的编码问题
1.getParamter获取GET方式传来的中文参数乱码 场景:A B 两端都为JAVA 所有编码都为UTF-8.GET得到的参数是乱码 原因,getParamter会将中文参数先URLDECODE ...
- nginx 解决session一致性
session 粘滞性每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题. upstream backserver {ip_hash;server ...
- 知识点整理-mysql怎么查看优化器优化后的sql
背景 1.新建两张表 CREATE TABLE t1 (m1 )); CREATE TABLE t2 (m2 )); 2.插入些数据 INSERT INTO t1 VALUES(, , , 'c'); ...