vue项目总结之文件夹结构配置详解


Posted in Javascript onDecember 13, 2017

前言

之前一段时间都在使用 vue 开发后台管理系统,在摸索的过程中对 vue 本身和模块化、规范化开发有了更深的认知,现在记录下来,希望对其他需要开发项目的人有帮助。

基于 vue.js 的前端开发环境,用于前后端分离后的单页应用开发,可以在开发时使用 ES Next、scss 等最新语言特性。下面随着小编来一起学习学习吧。

项目配置

首先,在确定好使用的框架和组件库后,先要大致了解它们,做到文档基本熟悉。本次开发使用到的有: vue , vuex , axios , elementUI 。

然后可以按官方指引,使用 vue-cli 搭建 vue 的项目,在项目里按照上面的文档尝试修改,加深理解:

# 安装依赖库,建议指定 vue 和 element 版本,避免版本升级带来意料之外的 bug
$ npm install vue@2.1.6 element-ui@1.4.6 vuex axios
#全局安装脚手架
$ npm install -g vue-cli 
# 创建一个基于 webpack 模板的新项目my-project
$ vue init webpack my-project
# 进入项目目录
$ cd my-project
# 安装依赖
$ npm install
# 运行项目
$ npm run dev

运行之后,看到以下页面表明项目环境搭建成功:

vue项目总结之文件夹结构配置详解

项目结构

搭建成功后,使用编辑器打开项目目录,大致是这样的结构:

vue项目总结之文件夹结构配置详解

相关文件和文件夹的含义:

  • build 文件夹: 里面是对 webpack 开发和打包的相关设置,包括入口文件、输出文件、使用的模块等;
  • config 文件夹: 主要是指定开发和打包中的静态资源路径、要压缩的文件类型、开发使用的端口号、开发使用虚拟服务器跨域请求 api 等。
  • node_modules: 项目的依赖库;
  • src 文件夹: 我们主要操作的地方,组件的增加修改等都在这个文件夹里操作,下文会有详细介绍;
  • static 文件夹: 静态资源文件夹,放置不会变动的资源,直接被复制到最终的打包目录(默认是dist/static)下;
  • .babelrc: 使用 babel 的配置文件,用来设置转码规则和插件;
  • .editorconfig: 代码的规范文件,规定使用空格或 tab 缩进,缩进的长度是两位还是四位之类的代码风格,使用的话需要在编辑器里下载对应的插件;
  • .eslintignore: 指定 eslint 忽略的文件;
  • .eslintrc: 配置 eslint 的检测规则,强制按照规则书写代码;
  • .gitignore: 指定 git 忽略的文件,所有 git 操作均不会对其生效;
  • .postcssrc: 指定使用的 css 预编译器,里面默认配置了 autoprefixer ,自动补全浏览器前缀;
  • favicon.ico: 浏览器标签页 title 旁边的小图标,这是需要我们自己粘贴过来的;
  • index.html: 首页文件,项目运行的时候,会自动将我们在 src 文件夹里生成的组件插入这个文件里;
  • LICENSE: 项目声明的 license;
  • package-lock.json: 当 node_modules 或 package.json 发生变化时自动生成的文件。这个文件主要功能是确定当前安装的包的依赖,以便后续重新安装的时候生成相同的依赖,而忽略项目开发过程中有些依赖已经发生的更新;
  • package.json: 指定项目开发和生成环境中需要使用的依赖库;
  • README.md: 相当于是一个备注文件,对项目开发过程中需要注意的地方进行一些说明。

src 文件夹结构

src 文件夹里的文件夹设置是灵活的,可以根据自己的习惯进行,不必雷同。下面是这次项目的结构:

vue项目总结之文件夹结构配置详解

  • assets: 放置静态资源,包括公共的 css 文件、 js 文件、iconfont 字体文件、img 图片文件 以及其他资源类文件。之所以强调是公共的 css 文件,是因为要在组件的 css 标签里加入 ‘scoped‘ 标记,将其作用范围限制在此组件以及调用它的父级组件中,避免污染全局样式;
  • components: 放置通用模块组件。项目里总会有一些复用的组件,例如弹出框、发送手机验证码、图片上传等,将它们作为通用组件,避免重复工作;
  • http: 放置与后台 api 相关的文件。这里面有 axios 库的实例配置文件、使用配置的 axios 实例接入 api 获取数据的函数的集合的文件;
  • mixins: 放置混合选项的文件。具体来说,相当于是公用函数的集合,在组件中引用时,可以作用于组件而不必书写重复的方法;
  • pages: 放置主要页面的组件。例如登录页、用户信息页等。通常是这里的组件本身写入一些结构,再引入通用模块组件,形成完整的页面;
  • router: 放置路由设置文件,指定路由对应的组件;
  • store: 放置 vuex 需要的状态关联文件,设置公共的 state、mutations 等;
  • App.vue: 入口组件,pages 里的组件会被插入此组件中,此组件再插入 index.html 文件里,形成单页面应用;
  • main.js: 入口 js 文件,影响全局,作用是引入全局使用的库、公共的样式和方法、设置路由等。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JS操作JSON要领详细总结
Aug 25 Javascript
JavaScript中SetInterval与setTimeout的用法详解
Nov 10 Javascript
js实现的奥运倒计时时钟效果代码
Dec 09 Javascript
jquery中封装函数传递当前元素的方法示例
May 05 jQuery
vue页面切换到滚动页面显示顶部的实例
Mar 13 Javascript
H5+C3+JS实现双人对战五子棋游戏(UI篇)
May 28 Javascript
vue点击页面空白处实现保存功能
Nov 06 Javascript
Vue页面刷新记住页面状态的实现
Dec 27 Javascript
node.js中 redis 的安装和基本操作示例
Feb 10 Javascript
Vue中通过属性绑定为元素绑定style行内样式的实例代码
Apr 30 Javascript
何时/使用 Vue3 render 函数的教程详解
Jul 25 Javascript
js实现点击选项置顶动画效果
Aug 25 Javascript
vue.js简单配置axios的方法详解
Dec 13 #Javascript
关于Vue单页面骨架屏实践记录
Dec 13 #Javascript
JS实现利用两个队列表示一个栈的方法
Dec 13 #Javascript
node vue项目开发之前后端分离实战记录
Dec 13 #Javascript
详解vue-cli快速构建vue应用并实现webpack打包
Dec 13 #Javascript
Angularjs过滤器实现动态搜索与排序功能示例
Dec 13 #Javascript
Angular4编程之表单响应功能示例
Dec 13 #Javascript
You might like
使用PHP遍历文件目录与清除目录中文件的实现详解
2013/06/24 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
Firebug入门指南(Firefox浏览器)
2010/08/21 Javascript
js函数返回多个返回值的示例代码
2013/11/05 Javascript
Javascript基础教程之argument 详解
2015/01/18 Javascript
JQuery动画与特效实例分析
2015/02/02 Javascript
javascript为按钮注册回车事件(设置默认按钮)的方法
2015/05/09 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
前端js实现文件的断点续传 后端PHP文件接收
2016/10/14 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
2016/10/27 Javascript
详解本地Node.js服务器作为api服务器的解决办法
2017/02/28 Javascript
vue组件学习教程
2017/09/09 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
2017/10/30 Javascript
浅析Vue中method与computed的区别
2018/03/06 Javascript
对layui中表单元素的使用详解
2018/08/15 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
2018/12/20 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
[01:01:24]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[52:07]完美世界DOTA2联赛PWL S3 LBZS vs access 第二场 12.10
2020/12/13 DOTA
Python通过命令开启http.server服务器的方法
2017/11/04 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
Windows10下 python3.7 安装 facenet的教程
2019/09/10 Python
QML使用Python的函数过程解析
2019/09/26 Python
PyTorch中反卷积的用法详解
2019/12/30 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
2021/02/25 Python
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
老师推荐信
2013/10/28 职场文书
诚信承诺书模板
2014/05/26 职场文书
学校火灾防控方案
2014/06/09 职场文书
董事长秘书工作职责
2014/06/10 职场文书
2014年教研工作总结
2014/12/06 职场文书
品质保证书格式
2015/02/28 职场文书
小学生表扬稿范文
2015/05/05 职场文书
2015年市场营销工作总结
2015/07/23 职场文书