最近参与了好几个项目,都是以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项目的文件组织的更多相关文章

  1. vue-cli快速构建Vue项目

    vue-cli是什么? vue-cli 是vue.js的脚手架,用于自动生成vue.js模板工程的. vue-cli怎么使用? 安装vue-cli之前,需要先装好vue 和 webpack npm i ...

  2. requirejs + vue 项目搭建2

    上篇是年后的项目搭建的,时间比较仓促,感觉有点low 1.gulp-vue 文件对公用js的有依赖,以后别的同事拿去搭其他项目,估计会被喷 2.不支持vue-loader一样写模版语言和es6语法 最 ...

  3. vue项目目录介绍

    Vue项目目录 初始化项目 vue init webpack []projectname] cd [projectname] npm install vue run dev 目录树 +---build ...

  4. Vue 项目实战系列 (一)

    最近一直在学习Vue,基本的文档看完后就需要进行具体的项目进行练手了,本系列文章主要是将我学习过程记录下来,和大家一起学习交流. 我在git上找到了一个淘票票的Vue项目,项目地址: https:// ...

  5. 简单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 ...

  6. vue项目构建与实战

    关于 微信公众号:前端呼啦圈(Love-FED) 我的博客:劳卜的博客 知乎专栏:前端呼啦圈 前言 由于vue相对来说比较平缓的学习过程和新颖的技术思路,使其受到了广大前后端开发者的青睐,同时其通俗易 ...

  7. Vue项目搭建完整剖析全过程

    Vue项目搭建完整剖析全过程 项目源码地址:https://github.com/ballyalex 有帮助的话就加个星星呗~!  项目技术栈:vue+webpack+bower+sass+axios ...

  8. 利用webpack构建vue项目

    快速搭建vue项目 一,确认自己有无搭建好node以及npm环境,这些是前提,具体安装方法可参考https://nodejs.org/en/. 二,开始构建项目. 第1步:新建一个文件夹,随意命名. ...

  9. 如何快速把 Vue 项目升级到 webpack3

    由于 webpack3升级后,新增了 Scope Hositing(作用域提升) 功能,据说是对 js的性能提升很大.因此,我们做了一个测试对比,就是 webpack3和 webpack1/2 的性能 ...

随机推荐

  1. jinja2-宏,include, import

    一 宏 宏类似常规编程语言中的函数.它们用于把常用行为作为可重用的函数,取代 手动重复的工作.如果宏在不同的模板中定义,你需要首先使用 import,比如 {% macro input(name, v ...

  2. SpringMVC返回Map类型转换成JSON失败

    错误信息:WARN DefaultHandlerExceptionResolver:380 - Failed to write HTTP message: org.springframework.ht ...

  3. 【SpringBoot】转载 springboot使用thymeleaf完成数据的页面展示

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/weixin_36380516/artic ...

  4. kotlin 之单表达式函数

    fun d(x:Int):Int=x* 如果函数体只有一条语句,而且是return语句,那么可以省略大括号以及return关键字,

  5. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_14-页面静态化-数据模型-远程请求接口

    okhttp的官方文档: https://square.github.io/okhttp/ github的地址 https://github.com/square/okhttp/ 如何远程请求轮播图的 ...

  6. sklearn常见分类器(二分类模板)

    # -*- coding: utf-8 -*- import pandas as pd import matplotlib matplotlib.rcParams['font.sans-serif'] ...

  7. Linux 文件操作相关常用命令

    1.创建文件夹 [root@izwz9148jq0xmzrb36r113z 20190726]# mkdir aaa //创建aaa文件夹 2.创建文件 [root@izwz9148jq0xmzrb3 ...

  8. JAVA WEB开放中的编码问题

    1.getParamter获取GET方式传来的中文参数乱码 场景:A B 两端都为JAVA 所有编码都为UTF-8.GET得到的参数是乱码 原因,getParamter会将中文参数先URLDECODE ...

  9. nginx 解决session一致性

    session 粘滞性每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题. upstream backserver {ip_hash;server ...

  10. 知识点整理-mysql怎么查看优化器优化后的sql

    背景 1.新建两张表 CREATE TABLE t1 (m1 )); CREATE TABLE t2 (m2 )); 2.插入些数据 INSERT INTO t1 VALUES(, , , 'c'); ...