vue如何编写自定义指令directive

2023-11-03

vue已经给我们内置了很多很好用的指令了(v-mode 、v-show)等等,但是有时候当这些指令不能满足我们需求的时候,我们还可以使用vue的自定义指令功能编写我们的指令,这是一个很强大的功能。

需要说明的是:尽管自定义指令这个功能很强大,但是其是对普通的DOM底层进行了直接的操作,会消耗一定的性能,所以我们在使用的时候一定要权衡利弊。

全局定义

我们可以使用vue的接口Vue.directive()去定义一个自定义的指令。

// 第一个参数为指令的名称,第二参数则是一个对象,包含了指令的钩子函数

Vue.directiive("directivename",{
	// 这个钩子只调用一次,在指令绑定到元素的时候被调用。通常可以在这里进行初始化
	bind(el,binding,vnode,oldVnode){
		consolo.log(el,binding,vnode)
	}
	// 在绑定指令后,绑定的元素插入父元素时触发,在bind钩子后
	inserted(el,binding,vnode,oldVnode){

	}
	// 所在组件的 VNode 更新时调用,但是可能发生在其子 VNode 更新之前。
	update(el,binding,vnode,oldVnode){

	}
	// 指令所在组件的 VNode 及其子 VNode 全部更新后调用。
	componentUpdate(el,binding,vnode,oldVnode){

	}
	// 指令与元素解绑后调用
	unbind(el,binding,vnode,oldVnode){}
})

指令的使用

和使用其他内置指令一样在元素上绑定

<div v-directive:参数.修饰符.修饰符="数据"></div>

binding参数

在这里插入图片描述

bindinf.name:指令的名字
binding.arg:指令的参数
binding.modifiers:指令的修饰符
binding.value:数据的数值(数值)
binding.expression:数据的字符串

局部指令

如果你愿意的话,你可以只定义一个组件或者部分组件的自定义指令
定义的的方法也很简单:只需要在组件选项里定义directives即可

directives:{
	directivename:{
		// 这个钩子只调用一次,在指令绑定到元素的时候被调用。通常可以在这里进行初始化
		bind(el,binding,vnode,oldVnode){}
		// 在绑定指令后,绑定的元素插入父元素时触发,在bind钩子后
		inserted(el,binding,vnode,oldVnode){}
		// 所在组件的 VNode 更新时调用,但是可能发生在其子 VNode 更新之前。
		update(el,binding,vnode,oldVnode){}
		// 指令所在组件的 VNode 及其子 VNode 全部更新后调用。
		componentUpdate(el,binding,vnode,oldVnode){}
		// 指令与元素解绑后调用
		unbind(el,binding,vnode,oldVnode){}
	}
}

动态参数

除此之外,我们还可以定义具有动态参数的指令

v-directivename:[动态参数].修饰符.修饰符="数据"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue如何编写自定义指令directive 的相关文章

  • virtualbox无法安装64位系统

    今天在实验室用VirtualBox安装 64位的Ubuntu系统 在安装时没有显示64位的Linux安装项 只有32位的Linux安装选项 为了以后遇到能够快速解决 我就把坑在这里填了吧 要安装64位的虚拟机要满足下面几个条件 1 CPU要
  • 【面试宝典】面试中你能遇到的问题答案全在这儿了

    人生中最尴尬的考试不是你不会 而是明明知道答案也答不对 职上网小编 人生数十载 考试千百回 小时候我们有小考 中学时我们有中考 高中时我们有高考 大学时我们还有大考 而在要工作时我们还要面考 总少不了以下这几个问题 请做一下自我介绍 请说一
  • unity-3d:打飞碟游戏

    unity 3d 打飞碟游戏 1 编写一个简单的鼠标打飞碟 Hit UFO 游戏 uml类图 Director DiskData DiskFactory FirstController FlyActionManager Interface

随机推荐

  • VMware虚拟机中如何配置静态IP,以及DNS服务器

    参考的是这位同学的博客 写这篇博客是为了自己学习用 到时候忘记了可以翻出来看看 这个是VMware的草图 1 查看网关 以及网段 将VMnet8中 使用本地DHCP服务将IP地址分配给虚拟机 的选项去掉 然后点击NAT设置 记住这上面的NA
  • Nginx具体配置(三)

    一 Nginx配置实例 反向代理 实例一 1 1 实现效果 在Windows浏览器地址栏中输入www 123 com 跳转到Linux系统中的tomcat主页面 访问Nginx 192 168 92 130 80 访问Tomcat 192
  • 在colab上部署novelAI

    目录 一 获取模型 1 使用他人提供的模型链接直接在Google云端硬盘中添加快捷连接 推荐 2 自己上传模型到Google云端硬盘 二 colab上进行操作 第一步 加载Google云盘 第二步 克隆git仓库 第三步 安装依赖 第四步
  • Spring Boot 学习研究笔记(十七) -Spring boot JPA的复杂查询

    Spring boot JPA的复杂查询 一 JpaSpecificationExecutor 接口查询方式 1 JpaSpecificationExecutor接口 JPA 提供动态接口JpaSpecificationExecutor 利
  • JavaScript 算法 -- 贪心算法

    文章目录 贪心算法 例题一 分饼干 例题二 买卖股票的最佳时机 II 贪心算法 贪心算法是算法设计的一种方法 期盼通过每个阶段的局部最优选择 从而达到全局的最优 但最后的结果不一定最优 例题一 分饼干 param number g 胃口 p
  • 【机器学习算法】感知机模型

    文章目录 1 感知机模型 2 收敛性证明 Novikoff定理 3 感知机对偶形式 4 感知机的缺点 5 感知机的几个变形 5 1 投票感知机 5 2 平均感知机 1 感知机模型 感知机模型是一个二分类的模型 它通过形如 y w x
  • 前后端交互之解决跨域问题!!!!

    报错 XMLHttpRequest cannot load http 127 0 0 1 8080 detail all No Access Control Allow Origin header is present on the req
  • 小娜老师的讲义-Docker的管理工具们(Kubernetes)

    Kubernetes k8s 是自动化容器操作的开源平台 这些操作包括部署 调度和节点集群间扩展 如果你曾经用过Docker容器技术部署容器 那么可以将Docker看成Kubernetes内部使用的低级别组件 Kubernetes不仅仅支持
  • Python学习--函数与Lambda表达式

    链接 DataWhale函数与Lambda表达式 目录 1 函数 函数的定义 函数的调用 函数的返回值 函数文档及注解 函数参数 1 位置参数 2 默认参数 3 可变参数 4 关键字参数 5 命名关键字参数 6 参数组合 变量作用域 内嵌函
  • 一个能干掉90%候选人的Kafka面试连环炮!

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 1 写在前面 2 如何保证宕机时数据不丢失 3 多副本冗余的高可用机制 4 多副本之间数据如何同步 5 ISR到底指的什么东西 6 acks参数的含义 7 最后
  • Less 18 (请求头注入--user-agent注入)

    文章目录 1 题目分析 2 构造SQL 3 手工注入 4 使用python进行注入 5 SQLmap注入 1 题目分析 首先我们来分析一下题目 经过尝试 我们知道 当我们输入正确的用户名和密码的时候 后台会将User Agent返回到屏幕上
  • 全国计算机等级考试题库二级C操作题100套(第89套)

    第89套 给定程序中 函数fun的功能是 求出形参ss所指字符串数组中最长字符串的 长度 其余字符串左边用字符 补齐 使其与最长的字符串等长 字符串数组中共 有M个字符串 且串长
  • 正点STM32F407核心板+ESP8266实现简单通信(详细讲解)

    1 ESP8266固件库的烧录 如果用串口助手连上板子 给8266发送AT指令发现老是报错error 可以重新烧录一下固件库 正点的ESP8266资料下载网址 http www openedv com thread 308397 1 1 h
  • tcp连接多久会自动断开_K8s 节点断开连接后,本在运行的 Pod 会如何?

    在工作节点与主节点断开连接后 工作节点上的 Pod 是什么状态 是否在继续运行 Kubernetes 控制器又在做什么 本文对此进行了实例研究 一一解答 作者 Bhargav Bhikkaji 翻译 Bach 才云 校对 星空下的文仔 才云
  • 微信小程序云开发之初体验(详细教程)

    微信小程序云开发之初体验 小程序云开发是微信最近推出的新的一项能力 它弱化了后端以及运维的概念 开发者无需搭建服务器 使用微信平台提供的api即可完成核心的业务开发 目前提供三大基础能力支持 云函数 在云端运行的代码 微信私有协议天然鉴权
  • 刷脸支付普及逐渐攀升产业生态逐渐形成

    刷脸让支付生态重返硬件年代 刷脸支付机具的生产 销售 铺设 维护涉及大量成本 客观存在压货风险大 后期服务难 地推成本高等问题 模式重而受益低 导致银行和大多数中小支付机构入局刷脸支付的意愿则整体薄弱得多 银联高调入局之际 2019 也是支
  • 《啊哈算法》学习——桶排序

    学习啊哈算法第一天 第一章第一节最快最简单的桶排序 问题描述 班级五名同学的分数排序 十分制 问题分析及思路 借助大小为10的一维数组 初始化为0 意味该分数没有人得 接下来处理分数 如有两个人得5分 即将a 5 2 记录下分数即出现次数后
  • Spring Validation 接口入参校验

    一 前言 JSR 是 Java Specification Requests 的缩写 含义为 JAVA 规范提案 JSR 303 Bean Validation 规范 正是一套基于 JavaBean 参数校验的标准 Hibernate Va
  • s3c2440移植ucGUI

    编译环境 ADS1 2 开发板 TQ2440 主要参考这篇文章 stm32 UCGUI 完美移植 ucGUI版本 3 90 ucGUI3 90下载地址 UCGUI最新3 90版源码 屏幕 联想VGA电脑屏幕 最大分辨率1024x768 1
  • vue如何编写自定义指令directive

    vue已经给我们内置了很多很好用的指令了 v mode v show 等等 但是有时候当这些指令不能满足我们需求的时候 我们还可以使用vue的自定义指令功能编写我们的指令 这是一个很强大的功能 需要说明的是 尽管自定义指令这个功能很强大 但