第一个Vue插件从封装到发布


Posted in Javascript onNovember 22, 2017

前言

这是我封装的第一个Vue插件,实现的功能是滑动选择省市区,虽然只是一个简单的插件,但还是挺开心的,记录一下步骤。

插件地址:https://github.com/leichangchun/vue-area-select     欢迎指正

准备

Vue官网插件部分的介绍虽然很简单,但是还是好好刷一遍的。由于此插件较为简单,主要用到以下两个点:

1 . Vue的插件需要有一个公开方法install

2 . 通过全局方法 Vue.use() 使用插件,在下文有栗子

创建工程

初始化工程

vue init webpack-simple projectName
cd projectName
cnpm install //安装依赖

创建开发组件目录如下

第一个Vue插件从封装到发布

开发插件

插件入口index.js需要引入插件组件,写install方法

import vueAreaSelect from './components/vue-area-select' //引入组件
const areaSelect = {
 install (Vue, options) {
 Vue.component(vueAreaSelect.name, vueAreaSelect) //全局组件
 }
}

export default areaSelect //导出

vue-area-select.vue是插件的具体实现部分,就不过多介绍,详见源码。

调试时的引用方式是引入index.js文件

//引入
import areaSelect from './index.js'

Vue.use(areaSelect)


//.vue中 使用

<vue-area-select></vue-area-select>

调试完成后,需要build,然后再npm发布。build的时候需要先修改webpack.config.js中的配置,然后 npm run build 打包文件

// entry: './src/main.js', //npm run dev时 demo调试的入口
 entry: './src/index.js', //打包时 插件入口
 output: {
 path: path.resolve(__dirname, './dist'),
 publicPath: '/dist/',
 // filename: 'build.js'
 filename: 'vue-area-select-lei.js', //打包生成文件的名字
 library:'AreaSelect', //reqire引入的名字
 libraryTarget:'umd',
 umdNamedDefine:true
 }

此时,插件开发部分已经完成。之后就需要npm发布。

NPM发布

先配置package.json,需要加入以下几项

"private": false,
 "main": "dist/vue-area-select-lei.js", //import引入时默认寻找的文件
 "repository": { //仓库地址
 "type": "git",
 "url": "https://github.com/leichangchun/vue-area-select"
 },

然后npm login 登录账号   npm publish发布插件

第一个Vue插件从封装到发布

插件的方式使用

npm install vue-area-select-lei --save //安装
//插件的方式引入使用
import areaSelect from 'vue-area-select-lei'
Vue.use(areaSelect)

 效果如下:

第一个Vue插件从封装到发布

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery boxy弹出层插件中文演示及使用讲解
Feb 24 Javascript
使用隐藏的new来创建对象
Mar 29 Javascript
javascript动态加载实现方法一
Aug 22 Javascript
js统计页面的来访次数实现代码
May 09 Javascript
简述AngularJS的控制器的使用
Jun 16 Javascript
Javascript中字符串replace方法的第二个参数探究
Dec 05 Javascript
微信小程序 UI布局常用技巧整理总结
Dec 05 Javascript
浅谈webpack打包之后的文件过大的解决方法
Mar 07 Javascript
微信小程序HTTP接口请求封装的实现
Feb 21 Javascript
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
Dec 24 Javascript
vue监听浏览器原生返回按钮,进行路由转跳操作
Sep 09 Javascript
Vue实现简单计算器
Jan 20 Vue.js
详细分析单线程JS执行问题
Nov 22 #Javascript
jquery实现回车键触发事件(实例讲解)
Nov 21 #jQuery
Angular实现双向折叠列表组件的示例代码
Nov 21 #Javascript
bootstrap表格内容过长时用省略号表示的解决方法
Nov 21 #Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
Nov 21 #Javascript
Angular4自制一个市县二级联动组件示例
Nov 21 #Javascript
微信小程序实现跟随菜单效果和循环嵌套加载数据
Nov 21 #Javascript
You might like
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
Yii2中DropDownList简单用法示例
2016/07/18 PHP
PHP中md5()函数的用法讲解
2019/03/30 PHP
jQuery 判断页面元素是否存在的代码
2009/08/14 Javascript
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
2010/03/20 Javascript
javascript操作cookie的文章(设置,删除cookies)
2010/04/01 Javascript
JS分页效果示例
2013/10/11 Javascript
javascript 弹出的窗口返回值给父窗口具体实现
2013/11/23 Javascript
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
PHP+mysql+Highcharts生成饼状图
2015/05/04 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
2016/04/05 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
2016/05/21 Javascript
javascript常用经典算法详解
2017/01/11 Javascript
angularJs使用ng-repeat遍历后选中某一个的方法
2018/09/30 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
2019/06/03 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
jquery实现简单自动轮播图效果
2020/07/29 jQuery
微信小程序实现底部弹出模态框
2020/11/18 Javascript
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python实现数通设备端口监控示例
2014/04/02 Python
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
Python实现图片转字符画的示例代码
2017/08/21 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
Sanic框架Cookies操作示例
2018/07/17 Python
Python 调用 zabbix api的方法示例
2019/01/06 Python
Python Web框架之Django框架Form组件用法详解
2019/08/16 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
详解淘宝H5 sign加密算法
2020/08/25 HTML / CSS
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
七年级英语教学反思
2014/01/15 职场文书
5.12护士节演讲稿
2014/04/30 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书
测量员岗位职责
2015/02/14 职场文书
重阳节座谈会主持词
2015/07/03 职场文书