第一个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 相关文章推荐
JS target与currentTarget区别说明
Aug 28 Javascript
JavaScript获取路径设计源码
May 22 Javascript
jQuery调取jSon数据并展示的方法
Jan 29 Javascript
不用一句js代码初始化组件
Jan 27 Javascript
VUE JS 使用组件实现双向绑定的示例代码
Jan 10 Javascript
Angular.js中控制器之间的传值详解
Apr 24 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
Oct 14 jQuery
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
Apr 25 Javascript
微信小程序开发的基本流程步骤
Jan 31 Javascript
vue中动态select的使用方法示例
Oct 28 Javascript
解决ele ui 表格表头太长问题的实现
Nov 13 Javascript
react实现移动端下拉菜单的示例代码
Jan 16 Javascript
详细分析单线程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
PHP编程函数安全篇
2013/01/08 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
2014/10/13 PHP
突发奇想的一个jquery插件
2010/11/19 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
jQuery中:enabled选择器用法实例
2015/01/04 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
JavaScript直播评论发弹幕切图功能点集合效果代码
2016/06/26 Javascript
浅谈js的异步执行
2016/10/18 Javascript
扩展jquery easyui tree的搜索树节点方法(推荐)
2016/10/28 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
轻松学习Javascript闭包
2017/03/01 Javascript
jquery.flot.js简单绘制折线图用法示例
2017/03/13 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
2019/05/12 Javascript
JS实现可视化音频效果的实例代码
2020/01/16 Javascript
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
Python函数中定义参数的四种方式
2014/11/30 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
Python的UTC时间转换讲解
2019/02/26 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
2020/03/14 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
带有css3动画效果的兼容多浏览器简单导航条示例
2014/01/26 HTML / CSS
浅谈Html5中视频 音频标签 进度条的问题
2016/07/26 HTML / CSS
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
幼儿园中班教学反思
2014/02/10 职场文书
第一批党的群众路线教育实践活动工作总结
2014/03/03 职场文书
跳蚤市场口号
2014/06/13 职场文书
基于JavaScript实现省市联动效果
2021/06/22 Javascript
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server