第一个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 键盘事件的几个基本方法
Oct 30 Javascript
ParseInt函数参数设置介绍
Jan 02 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
Jun 26 Javascript
Javascript 是你的高阶函数(高级应用)
Jun 15 Javascript
jQuery 实现评论等级好评差评特效
May 06 Javascript
Javascript使用SWFUpload进行多文件上传
Nov 16 Javascript
vue中实现先请求数据再渲染dom分享
Mar 17 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
Apr 08 Javascript
Vue面试题及Vue知识点整理
Oct 07 Javascript
Vue Router 实现动态路由和常见问题及解决方法
Mar 06 Javascript
vue实现日历表格(element-ui)
Sep 24 Javascript
Vue 修改网站图标的方法
Dec 31 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
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
PHP小程序自动提交到自助友情连接
2009/11/24 PHP
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
判断用户的在线状态 onbeforeunload事件
2011/03/05 Javascript
html中table数据排序的js代码
2011/08/09 Javascript
JQuery获取各种宽度、高度(format函数)实例
2013/03/04 Javascript
jquery实现静态搜索功能(可输入搜索文字)
2017/03/28 jQuery
Vue的Class与Style绑定的方法
2017/09/01 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
基于JavaScript实现每日签到打卡轨迹功能
2018/11/29 Javascript
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
2019/05/13 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
python 线程的暂停, 恢复, 退出详解及实例
2016/12/06 Python
Python使用迭代器捕获Generator返回值的方法
2017/04/05 Python
Python实现利用163邮箱远程关电脑脚本
2018/02/22 Python
Python字符串、整数、和浮点型数相互转换实例
2018/08/04 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
Python如何实现强制数据类型转换
2019/11/22 Python
python 读写文件包含多种编码格式的解决方式
2019/12/20 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
Python用类实现扑克牌发牌的示例代码
2020/06/01 Python
python中加背景音乐如何操作
2020/07/19 Python
Python 操作SQLite数据库的示例
2020/10/16 Python
如何用python批量调整视频声音
2020/12/22 Python
美国休闲服装品牌:J.Crew Factory
2017/03/04 全球购物
电子商务专业个人的自我评价
2013/12/19 职场文书
幼儿园教研活动方案
2014/01/19 职场文书
2015年幼儿教育工作总结
2015/07/24 职场文书
2016年党建工作简报
2015/11/26 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书
JS + HTML 罗盘式时钟的实现
2021/05/21 Javascript
MySQL数据库查询进阶之多表查询详解
2022/04/08 MySQL
vue动态绑定style样式
2022/04/20 Vue.js