vue3 自定义指令 directive

news/2024/9/16 21:33:04 标签: vue.js

1、官方说明:https://cn.vuejs.org/guide/reusability/custom-directives

除了 Vue 内置的一系列指令 (比如 v-model 或 v-show) 之外,Vue 还允许你注册自定义的指令 (Custom Directives)。

我们已经介绍了两种在 Vue 中重用代码的方式:组件和组合式函数。组件是主要的构建模块,而组合式函数则侧重于有状态的逻辑。另一方面,自定义指令主要是为了重用涉及普通元素的底层 DOM 访问的逻辑。

2、案例说明:

新建文件vNameOfDirectiveTest.vue

代码:

<script setup>
const vMyDirective = {
  beforeMount: (el) => {
    // 在元素上做些操作
    console.log(el);
    el.style.color = 'red'
    el.style.backgroundColor = 'yellow'
  }
}
</script>
<template>
  <h1 v-my-directive>This is a Heading</h1>
  <div v-color="'red'">This text will be red.</div>
  <input v-focus value="This is a input"></input>
</template>

说明

vMyDirective:局部指令。

v-color,v-focus:全局指令。

const app = createApp(App);
// 注册自定义指令
const color = {
  mounted(el, binding) {
    el.style.color = binding.value;
  },
  // 如果需要在更新时也更新颜色,可以添加一个 `updated` 钩子
  // updated(el, binding) {
  //   el.style.color = binding.value;
  // }
};

app.directive("focus", {
  mounted(el) {
    el.focus();
  },
});

// 全局注册自定义指令
app.directive('color', color);

3、注意:

<div v-color="'red'">This text will be red.</div>

这里的v-color="'red'",red一定要有二个单引号引起来,否则不生效,实测生效。


http://www.niftyadmin.cn/n/5645906.html

相关文章

MySQL中常见的存储引擎有什么?

MySQL中常见的存储引擎有什么&#xff1f; MySQL中有三种常见的引擎&#xff1a;InnoDB&#xff08;默认&#xff09;&#xff0c;MyISAM&#xff0c;Memory。 InnoDB存储引擎作为MySQL的默认存储引擎有很多特点&#xff1a; B树作为索引结构&#xff0c;叶子节点上存放表中…

Docker 清理和查看镜像与容器占用情况

查看容器占用磁盘大小 docker system df 查看单个image、container大小&#xff1a; docker system df -v 清理所有废弃镜像与Build Cache docker system prune -a

快速失败 (fail-fast) 和安全失败 (fail-safe)

1. 定义与工作原理 1.1 快速失败&#xff08;Fail-Fast&#xff09; 定义&#xff1a; 快速失败是一种系统设计原则&#xff0c;当系统遇到异常情况或错误时&#xff0c;立即停止执行并返回错误&#xff0c;而不是试图继续执行或处理潜在的问题。快速失败系统会主动检测系统中…

电脑驱动作用详解

电脑驱动的主要作用是充当操作系统与硬件设备之间的桥梁&#xff0c;使操作系统能够正确地与硬件设备进行通信和控制。具体来说&#xff0c;电脑驱动的作用包括以下几个方面&#xff1a; 1. 硬件与操作系统的接口 翻译指令&#xff1a;驱动程序将操作系统的指令翻译成硬件设备…

【生日视频制作】劳斯莱斯库里南中控改名软件AE模板修改文字软件生成器教程特效素材【AE模板】

生日视频制作教程豪车劳斯莱斯库里南中控改名软件AE模板修改文字特效广告生成神器素材祝福玩法AE模板工程 怎么如何做的【生日视频制作】劳斯莱斯库里南中控改名软件AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤&#xff1a; 下载AE模板 安装AE软件 把A…

GraphPad Prism 10 for Mac/Win:高效统计分析与精美绘图的科学利器

GraphPad Prism 10 是一款专为科研工作者设计的强大统计分析与绘图软件&#xff0c;无论是Mac还是Windows用户&#xff0c;都能享受到其带来的便捷与高效。该软件广泛应用于生物医学研究、实验设计和数据分析领域&#xff0c;以其直观的操作界面、丰富的统计方法和多样化的图表…

页面要突破手机安全区域来全屏显示(沉浸式模式显示),其他页面不需要,如何设置安全区域文字颜色

#效果图 ##思路遇到的问题 在aboutToAppear中使用window模块的 getLastWindow 和 setWindowLayoutFullScreen两个方法来处理全屏显示 设置沉浸式模式的特点&#xff1a; 在任何一个页面中设置过一次之后&#xff0c;其他页面也会跟着全屏显示 这么处理会出现问题&#xff1a…

如何使用Docker快速启动Nginx服务器

Nginx 是一款高性能的 HTTP 和反向代理服务器&#xff0c;它以高稳定性、丰富的功能集、简单的配置和低资源消耗而闻名。Docker 是一个开源的应用容器引擎&#xff0c;可以让开发者打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上…