一段VUE代码:通过组件封装全局方法、自定义指令和注册组件
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代码:通过组件封装全局方法、自定义指令和注册组件的更多相关文章
- 假如你想在VUE的main.js里根据条件按需引入注册组件以及样式,那就这样子写,附赠自己写的vue一个框架配置多系统按需加载系统路由以及组件办法
假如你想在VUE的main.js里根据条件按需引入注册组件以及样式,那就这样子写 举例来说我想要引入大屏的一些组件,但是原来框架已经集成了多个项目,路由也是按需加载的,想要实现组件按需加载 先在mai ...
- 对 COM+ 组件进行了方法调用,但该组件有一个已被中止的或正在被中止的事务。 (异常来自 HRESULT:0x8004E003)
错误: 对 COM+ 组件进行了方法调用,但该组件有一个已被中止的或正在被中止的事务. (异常来自 HRESULT:0x8004E003) 解决办法: 程序连接的数据库换到本地. 具体原因没搞 ...
- vue+element UI + axios封装文件上传及进度条组件
1.前言 之前在做项目的时候,需要实现一个文件上传组件并且需要有文件上传进度条,现将之前的实现过程简单记录一下,希望可以帮助到有需要的人. 项目用的是Vue框架,UI库使用的是element UI,前 ...
- vue组件定义全局方法
1.在vue实例的data中定义一个对象 2.可以在其他组件定义方法 3.触发方法
- 使用Vue自定义指令实现Select组件
完成的效果图如下: 一.首先,我们简单布局一下: <template> <div class="select"> <div class="i ...
- Vue.js 第2章 钩子函数&自定义指令&过滤器&计算属性&侦听器
目标 钩子函数 自定义指令 自定义过滤器 计算属性 监听属性 局部自定义指令 为什么需要自定义指令 为了复用,为了代码的灵活 指令的分类:全局指令,局部指令 在vm外面创建的指令 通过Vue.dire ...
- Vue.js(16)之 directive自定义指令
推荐阅读:Vue.directive基础,在Vue模块开发中使用 全局指令 Vue.directive('全局自定义指令名称', { /* 自定义指令配置对象 */ }) 私有指令 <templ ...
- 父组件调用子组件中的方法- this.$refs.xxx.子组件方法();
子组件中有一个说的方法 在父组件中去调用当你点击的时候 去调用子组件中的方法 fu.vue 在父组件的方法中调用子组件的方法,很重要 this.$refs.mychild.parentHandlecl ...
- svelte组件:svelte3.x自定义美化虚拟滚动条组件svelte-scrollbar
基于svelte3.0自定义pc端虚拟滚动条组件svelteScrollbar. svelte-scrollbar:运用svelte3.x创建的桌面pc版自定义美化滚动条组件.支持是否原生滚动条.自动 ...
- Selenium应用代码(常见封装的方法二)
滚动窗口: //将滚动条滚到适合的位置 , 方法一 public static void setScroll(WebDriver driver,int height){ try { // String ...
随机推荐
- 如何调整Gitlab-Runner最大并发数?
概述: 我们在使用gitlab-runner做cicd时,如果安装之后没有配置gitlab-runner的最大并发数,在使用时候可能会碰到job的警告(job日志超过字节限制):job's log e ...
- 管理员应了解的 SIEM解决方案七大功能 !
SIEM解决方案已成为企业网络安全武器库中不可或缺的一部分.但由于SIEM功能过于复杂且架构难以理解,企业往往SIEM的潜在功能.遗憾的是,他们忽视的潜在功能正是解开企业网络合规的重要部分. 例如, ...
- Qt编写物联网管理平台47-通用数据库设置
一.前言 为了做这个通用的数据库组件,专门安装了虚拟机来安装各种版本的不同类型的数据库做测试,包括编译对应的数据库插件,我一直坚信的是一切从实际出发+有实际采用发言权,包括不同Qt版本编译mysql. ...
- Qt通用方法及类库11
函数名 //判断IP地址及端口是否在线 static bool ipLive(const QString &ip, int port, int timeout = 1000); //获取网页所 ...
- Qt编写地图综合应用1-闪烁点图
一.前言 Qt作为一个超大型的一站式GUI超市开发集成环境,不仅集成了大量的可视化UI组件,还提供了网络库.数据库操作.文件操作等类库,封装的还是相当精彩一步到位,根据个人身边的一些程序员朋友了解,自 ...
- ASP.NET Core 中的速率限制中间件的使用
简介 在ASP.NET Core中,速率限制中间件是用来控制客户端对Web API或MVC应用程序发出请求的速率,以防止服务器过载和提高安全性. 下面是 AddRateLimiter 的一些基本用法: ...
- Nlog基本使用
引入get包:NLog.Extensions.Logging 添加一个nlog.cofig文件 并设置属性,始终复制或较新则复制 <?xml version="1.0" en ...
- 当github遇到了Halloween,神奇的彩蛋出现了!
往年每个万圣节github都会修改配色方案,今天才发现,so记录这个不平凡的2020年的github的彩蛋,希望一切都会慢慢好起来.
- SequoiaDB数据库-new数据库
随着企业中日益复杂与多变的需求,以及迅速扩展带来的海量数据的业务,IT部门需要将越来越多的信息提供给用户,同时在现今的全球经济背景环境下,IT部 门还需要在提供高效服务的同时,降低其设备与程序维护成本 ...
- Linux常见问题合集
Linux基本指令 连接SSH ssh uesrname@ip 例如:ssh root@192.168.43.217 Linux 创建多级目录命令: mkdir -p 示例:mkdir -p proj ...