index.js

// 插件定义第一种方式,对象:拥有 install() 方法的对象
const myPlugin = {
install(app, options) {
// 配置全局方法
app.config.globalProperties.globalMethod = function (value) {
return value.toLowerCase();
};
// 注册全局组件
app.component('Header', Header);
// 注册全局指令
app.directive('upper', function (el, binding) {
// 通过指令参数判断调用插件的options可选参数
el.textContent = binding.value.toUpperCase();
if (binding.arg === 'small') {
el.style.fontSize = options.small + 'px';
} else if (binding.arg === 'medium') {
el.style.fontSize = options.medium + 'px';
} else {
el.style.fontSize = options.large + 'px';
}
});
}
}; /*
// 函数插件:另一种方法
const myPlugin = function (app, options) {
// 配置全局方法
app.config.globalProperties.globalMethod = function (value) {
return value.toLowerCase()
}
// 注册全局组件
app.component("Header", Header) // 注册全局指令
app.directive("upper", function (el, binding) {
// 通过指令参数判断调用插件的options可选参数
el.textContent = binding.value.toUpperCase()
if (binding.arg === "small") {
el.style.fontSize = options.small + "px"
} else if (binding.arg === "medium") {
el.style.fontSize = options.medium + "px"
} else {
el.style.fontSize = options.large + "px"
}
})
}
*/ export default myPlugin;

  

上面这个插件的用法:

import { createApp } from 'vue';
import App from './App.vue';
import myPlugins from './myPlugins' // 引入插件 const app = createApp(App);
// 安装插件
app.use(myPlugins, {
small: 12,
medium: 24,
large: 36,
});
app.mount('#app');

  

一段VUE代码:通过组件封装全局方法、自定义指令和注册组件的更多相关文章

  1. 假如你想在VUE的main.js里根据条件按需引入注册组件以及样式,那就这样子写,附赠自己写的vue一个框架配置多系统按需加载系统路由以及组件办法

    假如你想在VUE的main.js里根据条件按需引入注册组件以及样式,那就这样子写 举例来说我想要引入大屏的一些组件,但是原来框架已经集成了多个项目,路由也是按需加载的,想要实现组件按需加载 先在mai ...

  2. 对 COM+ 组件进行了方法调用,但该组件有一个已被中止的或正在被中止的事务。 (异常来自 HRESULT:0x8004E003)

    错误: 对 COM+ 组件进行了方法调用,但该组件有一个已被中止的或正在被中止的事务. (异常来自 HRESULT:0x8004E003)   解决办法: 程序连接的数据库换到本地.   具体原因没搞 ...

  3. vue+element UI + axios封装文件上传及进度条组件

    1.前言 之前在做项目的时候,需要实现一个文件上传组件并且需要有文件上传进度条,现将之前的实现过程简单记录一下,希望可以帮助到有需要的人. 项目用的是Vue框架,UI库使用的是element UI,前 ...

  4. vue组件定义全局方法

    1.在vue实例的data中定义一个对象 2.可以在其他组件定义方法 3.触发方法

  5. 使用Vue自定义指令实现Select组件

    完成的效果图如下: 一.首先,我们简单布局一下: <template> <div class="select"> <div class="i ...

  6. Vue.js 第2章 钩子函数&自定义指令&过滤器&计算属性&侦听器

    目标 钩子函数 自定义指令 自定义过滤器 计算属性 监听属性 局部自定义指令 为什么需要自定义指令 为了复用,为了代码的灵活 指令的分类:全局指令,局部指令 在vm外面创建的指令 通过Vue.dire ...

  7. Vue.js(16)之 directive自定义指令

    推荐阅读:Vue.directive基础,在Vue模块开发中使用 全局指令 Vue.directive('全局自定义指令名称', { /* 自定义指令配置对象 */ }) 私有指令 <templ ...

  8. 父组件调用子组件中的方法- this.$refs.xxx.子组件方法();

    子组件中有一个说的方法 在父组件中去调用当你点击的时候 去调用子组件中的方法 fu.vue 在父组件的方法中调用子组件的方法,很重要 this.$refs.mychild.parentHandlecl ...

  9. svelte组件:svelte3.x自定义美化虚拟滚动条组件svelte-scrollbar

    基于svelte3.0自定义pc端虚拟滚动条组件svelteScrollbar. svelte-scrollbar:运用svelte3.x创建的桌面pc版自定义美化滚动条组件.支持是否原生滚动条.自动 ...

  10. Selenium应用代码(常见封装的方法二)

    滚动窗口: //将滚动条滚到适合的位置 , 方法一 public static void setScroll(WebDriver driver,int height){ try { // String ...

随机推荐

  1. alibabacloud-jindodata

    https://github.com/aliyun/alibabacloud-jindodata https://github.com/aliyun/alibabacloud-jindodata/bl ...

  2. 问题解决:Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist

    https://cloud.tencent.com/developer/article/1993317 大家都知道Centos8于2021年年底停止了服务,大家再在使用yum源安装时候,出现下面错误& ...

  3. Mac安装thrift出现的问题总结

    https://www.cnblogs.com/fingerboy/p/6424248.html刚上手thrift,安装上面花了时间,我在上面的链接中照着安装的.下面记录发生的问题:当我正确安装到bi ...

  4. Windows上使用CMake GUI编译开源代码时,提示:cmake Could NOT find ZLIB (missing:ZLIB_LIBRARY)和Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)的处理办法

    有的时候就算在CMake GUI中配置完ZLIB_LIBRARY和PNG_LIBRARY和PNG_PNG_INCLUDE_DIR等相关路径,还是提示上述错误.原因还是由于编译某源码时遗漏了对第三方开源 ...

  5. Matlab R2009b 版 license 到期问题

    打开2009b Matlab,反复提示需要激活,是lisense到期了,到期时间2017年11月11日.解决方法: 将以下内容替换 Matlab 安装路径下 license/*.lic 文件中的所有内 ...

  6. WW中文地名标注:输出*.wwp和*.wpl文件

    链接1:WW中文地名标注工具----3月4日更新增加OZI航点航迹读入 链接2:中文地标库终结者---------WW中的地名/地标中文化(含40万条中文地名)3月4日更新 链接3:地图浏览器

  7. Linux下获取文件名

    linux 下一切皆文件 1.获取指定路径下文件或目录 ls -la /usr/local/ |grep xxx | head -n 1 |awk '{print$9}'xxx : 替换为要匹配的文件 ...

  8. MSXML2.DOMDocument加载Internet资源

    MSXML2.DOMDocument加载Internet资源 The information in this article applies to: Microsoft XML, versions 2 ...

  9. 推荐一款 .NET 智慧水务物联网系统

    前言 本文将介绍如何通过智能水表(如 NB-IoT 水表).智能消火栓.智能阀门.数据采集终端(RTU 或 PLC)及其他前置传感器和设备,开发一个高效.智能的供水管理系统.该系统能够实时采集和分析供 ...

  10. Spring-RetryTemplate-RestTemplate的使用

    ------------------------------------------------------------------------------------ 1.基本概念 1.1应用场景 ...