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 相关文章推荐
javascript面向对象包装类Class封装类库剖析
Jan 24 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
Mar 20 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
Jun 01 Javascript
jQuery深拷贝Json对象简单示例
Jul 06 Javascript
详解js树形控件—zTree使用总结
Dec 28 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
Jan 13 Javascript
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
Apr 26 Javascript
Angular.js指令学习中一些重要属性的用法教程
May 24 Javascript
Element-UI中Upload上传文件前端缓存处理示例
Feb 21 Javascript
JS如何判断对象是否包含某个属性
Aug 29 Javascript
微信小程序实现可长按移动控件
Nov 01 Javascript
vue el-table实现递归嵌套的示例代码
Aug 14 Vue.js
详解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实现图片局部打马赛克的方法
2015/02/11 PHP
php的闭包(Closure)匿名函数详解
2015/02/22 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
轻松创建nodejs服务器(8):非阻塞是如何实现的
2014/12/18 NodeJs
JavaScript数据结构和算法之图和图算法
2015/02/11 Javascript
JavaScript与jQuery实现的闪烁输入效果
2016/02/18 Javascript
Javascript类型转换的规则实例解析
2016/02/23 Javascript
JS实现列表页面隔行变色效果
2017/03/25 Javascript
vue省市区三联动下拉选择组件的实现
2017/04/28 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
vue.js 使用axios实现下载功能的示例
2018/03/05 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
vue2 设置router-view默认路径的实例
2018/09/20 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
2020/10/29 Javascript
在nodejs中创建child process的方法
2021/01/26 NodeJs
Python在图片中添加文字的两种方法
2017/04/29 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
Pytorch中.new()的作用详解
2020/02/18 Python
Django分组聚合查询实例分享
2020/04/29 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
美国宠物商店:Wag.com
2016/10/25 全球购物
英国户外装备商店:Ultimate Outdoors
2019/05/07 全球购物
中医药大学市场营销专业自荐信
2013/09/29 职场文书
普通话宣传标语
2014/06/26 职场文书
公证委托书格式
2014/09/13 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
全陪导游词
2015/02/04 职场文书
CAD实训总结范文
2015/08/03 职场文书
MySql数据库触发器使用教程
2022/06/01 MySQL