• 认识Vue扩展插件


    众所周知,在 Vue 开发中,实现一个功能可以有很多种方式可以选择,这依赖于 Vue 强大的功能(指令、混合、过滤、插件等),本文介绍一下插件的开发使用。

    Vue 插件

    插件通常用来为 Vue 添加全局功能。插件的功能范围没有严格的限制——一般有下面几种:

    • 添加全局方法或者 property。如:vue-custom-element

    • 添加全局资源:指令/过滤器/过渡等。如 vue-touch

    • 通过全局混入来添加一些组件选项。如 vue-router

    • 添加 Vue 实例方法,通过把它们添加到 Vue.prototype 上实现。

    • 一个库,提供自己的 API,同时提供上面提到的一个或多个功能。如 vue-router

    使用插件

    vue引入的插件,如 element , 都需要提供 install 方法,因为 Vue.use() 方法会调用插件里的 install 方法

    import Vue from 'vue'
    import Element from 'element-ui'
    
    Vue.use(Element)
    

    全局组件

    类似的
    全局组件也是同样的做法,在 install 方法里面 进行 组件 注册

    import ColorIconComponents from './iconColor.vue'
    
    const ColorIcon = {
        install: function (Vue) {
            Vue.component('ColorIcon', ColorIconComponents)
        }
    }
    
    export default ColorIcon
    

    绑定prototype

    数组对象等绑定自定义方法

    // path: src/utils/customFn.js
    export default {
      install(Vue) {
        // 数组对象排序 asc-升序 des-降序
        Array.prototype.sortListObjByKey = function (key, order = 'asc') {
          const that = this
          const comparefn = (obj1, obj2) => {
            if (order === 'asc') {
              return obj1[key] - obj2[key]
            } else {
              return obj2[key] - obj1[key]
            }
          }
          return that.sort(comparefn)
        }
      }
    }
    

    使用

    // path: src/main.js
    import customFn from "./libs/customFn";
    
    Vue.use(customFn)
    

    开发插件范式

    来源

    Vue.js 的插件应该暴露一个 install 方法。这个方法的第一个参数是 Vue 构造器,第二个参数是一个可选的选项对象:

    MyPlugin.install = function (Vue, options) {
      // 1. 添加全局方法或 property
      Vue.myGlobalMethod = function () {
        // 逻辑...
      }
    
      // 2. 添加全局资源
      Vue.directive('my-directive', {
        bind (el, binding, vnode, oldVnode) {
          // 逻辑...
        }
        ...
      })
    
      // 3. 注入组件选项
      Vue.mixin({
        created: function () {
          // 逻辑...
        }
        ...
      })
    
      // 4. 添加实例方法
      Vue.prototype.$myMethod = function (methodOptions) {
        // 逻辑...
      }
    }
    

    🎈🎈🎈

    🌹 持续更文,关注我,你会发现一个踏实努力的宝藏前端😊,让我们一起学习,共同成长吧。

    🎉 喜欢的小伙伴记得点赞关注收藏哟,回看不迷路 😉

    🎁 欢迎大家评论交流, 蟹蟹😊


    __EOF__

  • 本文作者: 甜点cc
  • 本文链接: https://www.cnblogs.com/all-smile/p/16597567.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    sql 多表 表与表之间的关系,多表查询
    vivado产生报告阅读分析13-时序报告9
    三款Github Copilot的免费替代
    微信小程序自动化发布
    GEE中核函数在不同缩放级别下的区别
    PyQt5桌面应用启动模板
    k8s实战入门篇
    Gitlab+P3C-PMD(阿里云插件)标准化你团队的代码和提交信息
    源代码加密软件怎么防止企业数据泄漏
    VSC/SMC(十六)——自适应鲁棒滑模控制
  • 原文地址:https://www.cnblogs.com/all-smile/p/16597567.html