vue插件开发

在vue项目开发中,使用组件的频率远大于插件,但是组件需要在页面中用components引用,多个页面使用就要引用多次,这样使用率很高的组件一般我们希望全局注册后直接就可以在相应页面使用,因此我们需要将他们封装成插件

简而言之,插件可以封装组件,组件可以暴露数据给插件

分类

  • 1、添加全局方法或者属性
  • 2、添加全局资源:指令/过滤器/过渡等
  • 3、通过全局 mixin 方法添加一些组件选项
  • 4、添加 Vue 实例方法,通过把它们添加到 Vue.prototype 上实现。
  • 5、一个库,提供自己的 API,同时提供上面提到的一个或多个功能

使用

  • 直接用Vue.use方法,它需要在初始化vue之前使用
// 调用 MyPlugin.install(Vue)
Vue.use(MyPlugin)

new Vue({
  //... options
})
  • 传入对象
Vue.use(MyPlugin, { someOption: true })

开发

插件的开发需要一个公共的方法:install

MyPlugin.install = function (Vue, options) {
  // 1. 添加全局方法或属性
  Vue.myGlobalMethod = function () {
    // 逻辑...
  }

  // 2. 添加全局资源
  Vue.directive('my-directive', {
    bind (el, binding, vnode, oldVnode) {
      // 逻辑...
    }
    ...
  })

  // 3. 注入组件
  Vue.mixin({
    created: function () {
      // 逻辑...
    }
    ...
  })

  // 4. 添加实例方法
  Vue.prototype.$myMethod = function (methodOptions) {
    // 逻辑...
  }
}


文章作者: 徐辉波
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 徐辉波 !
评论
 上一篇
js常用工具方法 js常用工具方法
utils.js /* * 对Date的扩展,将 Date 转化为指定格式的String * 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, * 年(y)可以用 1-4 个占位符,毫秒(S)只能用
2018年10月24日
下一篇 
Unable to preventDefault inside passive event listener Unable to preventDefault inside passive event listener
在做禁止浏览器或微信下拉出现网页来源的这个功能时用到了下面的代码 document.body.addEventListener('touchmove', e => e.preventDefault()) 在控制台看到了下面的报错
2018年10月22日
  目录