zoukankan      html  css  js  c++  java
  • 第一个Vue插件从封装到发布

    前言

      这是我封装的第一个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)

     效果如下:

  • 相关阅读:
    【源码解析】Flink 是如何处理迟到数据
    Flink assignAscendingTimestamps 生成水印的三个重载方法
    【翻译】生成 Timestamps / Watermarks
    【翻译】The Broadcast State Pattern(广播状态)
    基于Broadcast 状态的Flink Etl Demo
    git 更新fork的远程仓库
    Flink 在IDEA执行时的webui
    配置ssh免密,仍需要密码
    第二章 Kubernetes进阶之使用二进制包部署集群
    Kubernetes之Ingress
  • 原文地址:https://www.cnblogs.com/shapeY/p/7875930.html
Copyright © 2011-2022 走看看