第一个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 相关文章推荐
javascript实现的基于金山词霸网络翻译的代码
Jan 15 Javascript
Javascript匿名函数的一种应用 代码封装
Jun 27 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
Jun 19 Javascript
js严格模式总结(分享)
Aug 22 Javascript
js友好的时间返回函数
Aug 24 Javascript
Node.js 8 中的 util.promisify的详解
Jun 12 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
Mar 13 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
May 08 Javascript
Vue动态修改网页标题的方法及遇到问题
Jun 09 Javascript
解决在Vue中使用axios用form表单出现的问题
Oct 30 Javascript
uni-app 组件里面获取元素宽高的实现
Dec 27 Javascript
vue基础知识--axios合并请求和slot
Jun 04 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+MySQL5.0中文乱码解决方法
2006/11/20 PHP
获得Google PR值的PHP代码
2007/01/28 PHP
php 数组排序 array_multisort与uasort的区别
2011/03/24 PHP
php提高网站效率的技巧
2015/09/29 PHP
javascript document.referrer 用法
2009/04/30 Javascript
一些常用的JS功能函数代码
2009/06/23 Javascript
Safari5中alert的无限循环BUG
2011/04/07 Javascript
ExtJS4 组件化编程,动态加载,面向对象,Direct
2011/05/12 Javascript
在Windows上安装Node.js模块的方法
2011/09/25 Javascript
jquery 实现窗口的最大化不论什么情况
2013/09/03 Javascript
jquery选择checked在ie8普通模式下的问题
2014/02/12 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
jQuery中fadein与fadeout方法用法示例
2016/09/16 Javascript
Angular.js中控制器之间的传值详解
2017/04/24 Javascript
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
解决ele ui 表格表头太长问题的实现
2019/11/13 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
python+opencv实现摄像头调用的方法
2019/06/22 Python
用Python徒手撸一个股票回测框架搭建【推荐】
2019/08/05 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
Python requests获取网页常用方法解析
2020/02/20 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
美国电子元器件分销商:Newark element14
2018/01/13 全球购物
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
圣诞树世界:Christmas Tree World
2019/12/10 全球购物
荷兰DOD药房中文官网:DeOnlineDrogist
2020/12/27 全球购物
Python如何定义一个函数
2015/09/01 面试题
行政经理的岗位职责
2013/11/23 职场文书
学校宣传标语
2014/06/18 职场文书
教师工作态度自我评价
2015/03/05 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript
swagger如何返回map字段注释
2021/07/03 Java/Android