Vue插件

Vue插件

插件作用

插件通常用来为 Vue 添加全局功能

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

开发

Vue官方规定插件必须暴露一个install方法,方法第一个参数为Vue实例

// myPlugin.js
export default function install (Vue) {
    Vue.prototype.$plugin = 'myPlugin'
}
// 或者
export default myPlugin = {
    install (Vue) {
        Vue.prototype.$plugin = 'myPlugin'
    }
}

// main.js
import myPlugin from '@/plugins/myPlugin'
Vue.use(myPlugin)  // 作用:调用myPlugin中install方法

插件示例

使用插件方式封装 element-ui messageBox,实现全局页面内调用

// dialogPlugin.js
export const dialogPlugin = {
  install(Vue) {
    function dialog({
      text,
      confirm,
      cancel,
      confirmButtonText = '确定',
      cancelButtonText = '取消',
      type = 'warning',
      title = '提示',
      center = false
    }) {
      if (!text) {
        throw new Error(text is require)
      }
      Vue.prototype.$confirm(text, title, {
        confirmButtonText,
        cancelButtonText,
        type,
        center
      }).then(() => {
        confirm && confirm()
      }).catch(() => {
        cancel && cancel()
      })
    }
    Vue.prototype.$dialog = dialog
  }
}

// main.js
import { dialogPlugin } from '@/plugins/dialog';
Vue.use(dialogPlugin)

// index.vue
this.$dialog({ text: 'xxxxx xxxx', title: 'xxxx', confirm: () => { console.log('xxx') } })

Original: https://www.cnblogs.com/zh1q1/p/16744682.html
Author: 吴知木
Title: Vue插件

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/599357/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • mysql安装及主从复制配置

    一、安装 mysql8.0 下载mysql 安装包http://mirrors.sohu.com/mysql/MySQL-8.0/ wget http://mirrors.sohu…

    数据库 2023年5月24日
    056
  • mysql常用操作汇总

    工作中经常用会遇到这种情况,可以访问mysql所在的服务器,但是服务器端口不对外暴露(通常因为安全原因)。这时,操作数据库只能通过命令行和 mysql client窗口来实现。我对…

    数据库 2023年6月14日
    076
  • Linux系统下nginx的安装与卸载

    1.1 安装 准备依赖环境 1.安装 gcc 依赖库 yum install gcc-c++ 2.安装 PCRE pcre-devel 依赖库 yum install -y pcr…

    数据库 2023年6月11日
    079
  • Mycat 学习笔记

    概述 1. Mycat 是什么? Mycat 是数据库中间件,连接 Java 应用程序和数据库,它的作用如下: 2. Mycat 原理 Mycat 拦截了用户发送过来的 SQL 语…

    数据库 2023年5月24日
    076
  • RadonDB MySQL on K8s 2.1.4 发布

    RadonDB MySQL Kubernetes 于 4 月 7 日正式发布新版本 2.1.4。该版本主要对可用性进行了优化,新增中英文文档,并修复一些问题。 致谢 首先感谢 @a…

    数据库 2023年6月11日
    069
  • 博客园美化-随季节变化实现不同的飘落效果

    最近在研究博客园的美化效果,看到有一个樱花飘落的效果,忽然突发奇想,如果能根据当前日期所处的季节实现不同的飘落效果岂不是更酷。😂 最近在研究博客园的美化效果,看到有一个樱花飘落的效…

    数据库 2023年6月6日
    097
  • Java学习-第一部分-第二阶段-第五节:集合

    集合 笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html) 前面我们保存多个数据使用的是数组,那么数组有不足的地方,我…

    数据库 2023年6月11日
    085
  • List集合分页处理的方法

    参考https://www.cnblogs.com/cmz-32000/p/12186362.html 解决了数组越界问题 参数页码大于总页码时返回null(可根据自己业务调整为返…

    数据库 2023年6月11日
    066
  • Jenkins安装(Docker)版

    一、jenkins安装 1.查找,下载jenkins镜像文件 启动docker,查找Jenkins镜像文件 docker search jenk…

    数据库 2023年6月11日
    087
  • PHP array_count_values()

    array_count_values array_count_values() 函数用于统计数组中所有值出现的次数。 本函数返回一个数组,其元素的键名是原数组的值,键值是该值在原数…

    数据库 2023年6月14日
    066
  • SQL语句的整合

    基础语法 https://blog.csdn.net/m0_37989980/article/details/103413942 CRUD 提供给数据库管理员的基本操作,CRUD(…

    数据库 2023年6月14日
    067
  • 你知道5分钟法则和10字节法则么?

    如果一条数据每5分钟被访问一次,那么它应该常驻在内存中。类似的,如果想存储只有0和1两个值的标志位,相比于将8个标志位打包为1个字节,将1个标志位单独存储为1个字节是更节约的选择。…

    数据库 2023年6月14日
    098
  • 一致性hash算法

    背景 当我们的业务系统大到一定程度的时候,一台缓存服务器显然不能满足需求,需要使用多台缓存服务器。然后缓存服务器具体一定的用户粘性属性,如何设计缓存服务器使其命中率提高,并具有伸缩…

    数据库 2023年6月9日
    072
  • COM组件中 添加导出函数的方法

    COM组件中 添加导出函数的方法 0准备 类前缀 define ATL_NO_VTABLE __declspec(novtable) 函数前缀 define STDMETHODIM…

    数据库 2023年6月14日
    083
  • 牛客SQL刷题第三趴——SQL大厂面试真题

    结果保留两位小数,并按播放进度倒序排序。 解题思路: 1、播放进度结算 ①、时间差函数,timestampdiff(unit,char(begin-end)) ②、判断,if或者用…

    数据库 2023年6月16日
    064
  • web监听器解析

    监听器是web三大组件之一,事件监听机制如下: 事件:某个事件,如果初始化上下文 事件源:事件发生的地方 监听器:一个对象,拥有需要执行的逻辑 注册监听:将事件、事件源、监听器绑定…

    数据库 2023年6月16日
    075
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球