前言

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

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

准备

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

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

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

创建工程

  初始化工程

vue init webpack-simple projectName

cd projectName

cnpm install  //安装依赖

  创建开发组件目录如下

开发插件

  插件入口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发布插件

  插件的方式使用

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

Vue.use(areaSelect)

效果如下:

最新文章

  1. python 解压 压缩包
  2. 【splay】文艺平衡树 BZOJ 3223
  3. [实践] Android5.1.1源码 - 让某个APP以解释执行模式运行
  4. [No00007F]2016-面经[下] 英文简历写作技巧
  5. [原创] Easy SysLite V1.2 (2016.5.29更新,新增加WIN10支持,一个程序适配所有系统减肥)
  6. ubuntu使用笔记
  7. 数据库的Index Scan V.S. Rscan
  8. Thread 线程
  9. 【Linux/Ubuntu学习 13】ubuntu上好用的pdf软件okular
  10. hdu 1040 As Easy As A+B
  11. Yii 权限分级式访问控制实现(非RBAC法)
  12. sql - 获取日期中的年
  13. requireJS define require
  14. linux 线程编程详解
  15. mysql数据库开启日志
  16. 使用Nginx+CppCMS构建高效Web应用服务器(之三)
  17. [Noi2015]荷马史诗
  18. 使用JWT的OAuth2的SSO分析
  19. docker小结
  20. dragula 一个 JavaScript 库,实现了网页上的拖放位置

热门文章

  1. React Native学习——动画Animated(笔记)
  2. Linux 定期自动备份文件夹脚本
  3. Google 视频编码格式 VP9 究竟厉害在哪里
  4. django1.11如何实时访问mysql数据库
  5. Java读取打印机自定义纸张.
  6. Codeforces 869E The Untended Antiquity
  7. THINKPHP增删改查--(改)
  8. VSCode配置eslint
  9. python 爬取国家粮食局东北地区玉米收购价格监测信息
  10. ASP.NET Core 返回 Json DateTime 格式