Vue项目组件化工程开发实践方案


Posted in Javascript onJanuary 09, 2018

我们暂时给提取出来的脚手架取名叫vde-cli,通过vde-cli脚手架生成的组件库工程目录结构如下:

Vue项目组件化工程开发实践方案 

核心功能

组件库

工程的packages文件夹就是用来存放组件库里面的各种组件了,这里不需要通过手动创建文件的方式创建组件,直接通过一条创建组件的命令完成。每个组件都有一个单独的组件文件夹,组件文件夹下都至少包含"index.vue","example.vue","readme.md"这三个文件,这几个文件都是通过创建组件传递的参数加指定的模板生成,创建组件的命令如下:

npm run generate <componentName> <componentTitle>

两个参数分别是组件的名称和后面用来在文档和例子工程里显示的导航名称。

组件库的对外主文件是工程的src/index.js,只要是通过上面的命令创建的组件,这个文件都会自动更新(省去你手工更新的时间)

Doc文档工程

Doc文档工程就是用来展示你组件文档的一个小型单页面系统。组件的文档就是存放在每个组件文件夹下的readme.md文件,我们通过vue-markdown-loader去解析这个文件变成一个vue组件也页面中显示。在你通过上面指令创建组件的时候,会自动更新Doc文档工程的所有依赖组件的部分(不需要任何手工操作)

Example例子工程

Example例子工程跟Doc文档工程类似,用来展示你组件的例子的小型单页面系统,组件的例子就是存放在每个组件文件夹下面的example.vue文件。在通过指令创建组件的完毕,就可以在该文件里测试你写的组件了。

上面的文档工程和例子工程分别通过webpack-dev-sever起了一个对应的服务,添加组件和修改组件文件下的文件信息都会自动刷新这两个应用。

用一张图来表示整个大工程的流程图如下:

Vue项目组件化工程开发实践方案 

主要实现方式

上面已经介绍了整个大工程其实是由组件库、文档工程和例子工程组成的,当然最核心的东西还是组件了,所以一切还需要从创建组件开始说起:

所有的组件都存放在大工程的packages里面,也就是说packages是所有组件存放的根目录(跟组件配置信息相关)。 首先需要说明的是,每个组件文件夹都至少包含组件主文件(index.vue)、组件例子文件(example.vue)、组件文档文件(readme.md)这三个文件。每个组件所包含的这三个文件又是分别通过一个对应的模板文件生成,这三个模板格式可以根据自己的需求自定义,大致类似于:

Vue项目组件化工程开发实践方案Vue项目组件化工程开发实践方案Vue项目组件化工程开发实践方案

通过创建组件的命令传递两个参数,一个代表组件的名称(创建组件的文件夹名称),另外一个是组件的标题(用于文档工程和例子工程的导航名称显示)。有了这两个参数,我们就可以结合组件的模板文件生成对应的组件,然后将这些组件信息写入gen/route.json里面,因为文档工程和例子工程都非常依赖这些信息。 组件创建完毕有一个很重要的工作就是自动往文档工程里面注册新的组件信息(docs/main.js)和更新组件库的对外主文件(src/index.js),这两个文件也分别是通过模板生成的,模板格式分别如下:

Vue项目组件化工程开发实践方案 Vue项目组件化工程开发实践方案

使用

只需要四条命令就能开启一个自动化组件工程了:

1、全局安装vde-cli模块

npm install -g vde-cli

2、初始化工程

$ vde init <project-name>

3、安装所需要模块

$ npm install

4、启动项目

$ npm run start

然后整个工程就能运行起来了,应用的时候可以根据实际需求修改组件相关的模板和加入自己的组件库的其它配置信息就可以了。文档工程和例子工程的路由等信息都会在通过创建组件命令的时候自动更新,你在更改组件的文档和组件功能的时候,文档工程和例子工程都会实时更新。

实际项目接入

这里推荐使用npm link的方式,在项目里npm link本地用vde init的那个工程即可。

总结

以上所述是小编给大家介绍的Vue项目组件化工程开发实践方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JQuery+Ajax无刷新分页的实例代码
Feb 08 Javascript
javascript+canvas制作九宫格小程序
Dec 28 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
Mar 03 Javascript
JavaScript编写简单的计算器
Nov 25 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
Jun 06 Javascript
微信小程序 MD5的方法详解及实例代码
Mar 10 Javascript
浅谈Angularjs中不同类型的双向数据绑定
Jul 16 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
Sep 21 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
Sep 29 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
Dec 03 Javascript
前端插件之Bootstrap Dual Listbox使用教程
Jul 23 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
Jan 06 Javascript
详解webpack之scss和postcss-loader的配置
Jan 09 #Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
Jan 09 #Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
Jan 09 #Javascript
详解webpack babel的配置
Jan 09 #Javascript
webpack+vue2构建vue项目骨架的方法
Jan 09 #Javascript
webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)
Jan 09 #Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
Jan 09 #Javascript
You might like
php 中的closure用法详解
2017/06/12 PHP
通过JAVAScript实现页面自适应
2007/01/19 Javascript
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
javascript自执行函数之伪命名空间封装法
2010/12/25 Javascript
js获取当前页面路径示例讲解
2014/01/08 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
针对初学者的jQuery入门指南
2015/08/15 Javascript
jquery拖拽效果完整实例(附demo源码下载)
2016/01/14 Javascript
js仿微信语音播放实现思路
2016/12/12 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
详解在Javascript中进行面向切面编程
2019/04/28 Javascript
修改vue源码实现动态路由缓存的方法
2020/01/21 Javascript
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
Python异常处理总结
2014/08/15 Python
Python对列表排序的方法实例分析
2015/05/16 Python
python 全文检索引擎详解
2017/04/25 Python
Python使用爬虫爬取静态网页图片的方法详解
2018/06/05 Python
简单了解Django ContentType内置组件
2019/07/23 Python
PyTorch: Softmax多分类实战操作
2020/07/07 Python
CSS3的Border-radius轻松制作圆角
2012/12/24 HTML / CSS
骆驼官方商城:CAMEL
2016/11/22 全球购物
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
ORLY官网:美国专业美甲一线品牌
2019/12/11 全球购物
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
第一范式(1NF)、第二范式(2NF)和第三范式(3NF)之间的区别是什么?
2016/04/28 面试题
C#笔试题和英文面试题
2013/02/07 面试题
什么是组件架构
2016/05/15 面试题
天地会口号
2014/06/17 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
中药学专业毕业生推荐信
2014/07/10 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书
2015年教师教学工作总结
2015/04/28 职场文书
Python爬虫基础之爬虫的分类知识总结
2021/05/13 Python