vue自定义指令(图文示例)

在这里插入图片描述

第085个

查看专栏目录: VUE


本文章目录

    • 示例效果图
    • 示例源代码
    • API 参考网址

Vue 自定义指令是一种用于扩展 Vue 模板功能的强大工具。通过自定义指令,你可以在 Vue 模板中添加自定义的行为和逻辑,使模板更加灵活和可定制。

以下是对 Vue 自定义指令的详细解释,并提供一个示例代码来帮助你更好地理解:

定义自定义指令:在 Vue 项目中,定义自定义指令需要创建一个全局或局部的指令对象。指令对象包含几个关键属性,如bind、inserted、update和unbind等,用于处理指令的不同生命周期阶段。

   Vue.directive('myDirective', {
     bind: function(el, binding, vnode) {
       // 指令绑定时的逻辑
     },
     inserted: function(el, binding, vnode) {
       // 元素插入时的逻辑
     },
     update: function(el, binding, vnode) {
       // 数据更新时的逻辑
     },
     unbind: function(el) {
       // 指令解绑时的逻辑
     }
   });
  • bind:指令绑定到元素时触发。这个阶段可以进行初始化操作,例如获取元素、设置数据等。
  • inserted:元素插入到 DOM 时触发。可以在这个阶段执行与元素插入相关的操作,如添加事件监听器等。
  • update:当绑定的数据发生变化时触发。可以在这里根据数据的变化更新元素的状态。
  • unbind:指令从元素解绑时触发。这个阶段可以进行清理操作,如移除事件监听器等。
    通过在指令对象的不同方法中编写相应的逻辑,可以实现各种自定义的行为和功能。

示例效果图

在这里插入图片描述

示例源代码

/*
* @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN)
* @此源代码版权归大剑师兰特所有,可供学习或商业项目中借鉴,未经授权,不得重复地发表到博客、论坛,问答,git等公共空间或网站中。
* @Email: 2909222303@qq.com
* @weixin: gis-dajianshi
* @First published in CSDN
* @First published time: 2024-02-17
*/

<template>
	<div class="djs-box">
		<div class="topBox">
			<h3>vue自定义指令(图文示例)</h3>
			<div>大剑师兰特, 还是大剑师兰特,gis-dajianshi</div>
		</div>

		<div class="dajianshi" id="dajianshi">
			<h4>
				选择结束时间:<el-date-picker v-model="endTime" type="datetime" placeholder="选择日期时间">
				</el-date-picker>
			</h4>
			<h4 v-countdown="endTime"></h4>
		</div>
	</div>
</template>

<script>
	import dayjs from "dayjs";
	export default {
		data() {
			return {
				endTime: new Date(),
				timer:null,
			}

		},

		directives: {
			countdown: {
				update: (el, binding) => {
					console.log(el);
					console.log(binding)
					let timer=null;
					if(timer!=null){
						clearInterval(timer);
					}
					
					let usedTime = binding.value.getTime();

					timer = setInterval(function() {
						var now = new Date().getTime();
						var remainingTime = usedTime - now;
						if (remainingTime < 0) {
							clearInterval(timer);
					  el.innerHTML = '倒计时已经结束';
						} else {
							el.innerHTML = ' 时间倒计时:' + Math.floor(remainingTime / 1000)+'秒';
						}
					}, 1000);
				}
			},
		}

	}
</script>
<style scoped>
	.djs-box {
		width: 1000px;
		height: 650px;
		margin: 50px auto;
		border: 1px solid darkcyan;
	}

	.topBox {
		margin: 0 auto 0px;
		padding: 10px 0 20px;
		background: darkcyan;
		color: #fff;
	}

	.dajianshi {
		width: 93%;
		height: 470px;
		margin: 5px auto 0;
		border: 1px solid #369;
		background-color: cde;
		padding: 20px;
	}

</style>


API 参考网址

https://v2.cn.vuejs.org/v2/guide/custom-directive.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/393387.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot车辆充电桩管理系统源码和论文

随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;车辆充电桩管理系统也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人工管理显然已无法应对时代的变化&#xff0c;…

线程池如何知道一个线程的任务已经执行完成

一个小伙伴私信了一个小米的面试题&#xff0c;问题是&#xff1a; “线程池如何知道一个线程的任务已经执行完成”&#xff1f; 说实话&#xff0c;这个问题确实很刁钻&#xff0c;毕竟像很多工作 5 年多的小伙伴&#xff0c;连线程池都没用过&#xff0c;怎么可能回答出来这个…

2024.02.18作业

1. 使用fgets统计给定文件的行数 #include <stdio.h> #include <stdlib.h> #include <string.h>int main(int argc, char const *argv[]) {if (argc ! 2){puts("input file error");puts("usage:./a.out filename");return -1;}FILE* f…

【论文阅读笔记】Contrastive Learning with Stronger Augmentations

Contrastive Learning with Stronger Augmentations 摘要 基于提供的摘要&#xff0c;该论文的核心焦点是在对比学习领域提出的一个新框架——利用强数据增强的对比学习&#xff08;Contrastive Learning with Stronger Augmentations&#xff0c;简称CLSA&#xff09;。以下…

黑猫带你学NandFlash第5篇:NAND的封装与引脚定义

本文依据ONFI5.1及个人工作经验整理而成&#xff0c;如有错误请留言。 文章为付费内容&#xff0c;已加入原创侵权保护&#xff0c;禁止私自转载及抄袭。 文章所在专栏&#xff1a;《黑猫带你学&#xff1a;NandFlash详解》 1 封装类型 spec中规定nand封装尺寸有以下几种&…

.螺旋矩阵

54. 螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,3,6,9,8,7,4,5]示例 2&#xff1a; 输入&#xff1a;ma…

【FastAPI】P1 安装与第一个 FastAPI 应用

目录 FastAPI 安装第一个 FastAPI 应用代码拆解分析 FastAPI 安装 FastAPI 是用于快速构建 API 的 web 框架&#xff0c;依赖 Python 3.8 及更高版本。使用 pip 命令安装 fastapi&#xff1a; pip install fastapi安装异步处理 ASGI 的服务器 Uvicorn&#xff1a; pip insta…

HAL STM32通过multi_button库处理按键事件

HAL STM32通过multi_button库处理按键事件 &#x1f4cd;作者&#xff1a;0x1abin的multi_button库:https://github.com/0x1abin/MultiButton &#x1f4d8;MultiButton简介 MultiButton 是一个小巧简单易用的事件驱动型按键驱动模块&#xff0c;可无限量扩展按键&#xff0c;…

分享一个学英语的网站

名字叫&#xff1a;公益大米网​​​​​​​ Freerice 这个网站是以做题的形式来记忆单词&#xff0c;题干是一个单词&#xff0c;给出4个选项&#xff0c;需要选出其中最接近题干单词的选项。 答对可以获得10粒大米&#xff0c;网站的创办者负责捐赠。如图 触发某些条件&a…

解锁Spring Boot中的设计模式—05.策略模式:探索【策略模式】的奥秘与应用实践!

1.策略者工厂模式&#xff08;Map版本&#xff09; 1.需求背景 假设有一个销售系统&#xff0c;需要根据不同的促销活动对商品进行打折或者其他形式的优惠。这些促销活动可以是针对不同商品类别的&#xff0c;比如男装、女装等。 2.需求实现 活动策略接口&#xff1a;定义了…

Docker数据卷容器(容器继承)

Docker数据卷容器&#xff08;容器继承&#xff09; 创建DockerFile构建镜像启动容器修改数据卷创建子容器验证 命名的容器挂载数据卷。其他容器通过挂载这个容器实现数据共享&#xff0c;挂载数据的容器 -> 称之为数据卷容器 创建DockerFile FROM centosVOLUME ["dat…

哪个牌子的洗地机好用?性能超好的洗地机推荐

洗地机已经是家庭中不可或缺的清洁家电之一了&#xff0c;它的出现极大地方便了我们的生活&#xff0c;并为我们解决了一大难题&#xff1a;洗地板的繁琐。无论是家庭主妇还是上班族&#xff0c;对于洗地机的需求都是无可替代的。随着科技的不断进步&#xff0c;洗地机的功能也…

上门回收小程序开发,互联网下发展机遇

在当下生活水平大幅度上升发展下&#xff0c;回收成为了人们日常生活中的一部分。 如今&#xff0c;随着互联网的快速发展&#xff0c;回收行业也进行了升级换代&#xff0c;由传统的线下回收门店到回收箱在到当下的线上互联网回收模式&#xff0c;迈向了“互联网废品回收”的…

安装ts-node有感

起因&#xff1a;想要在vsCode上运行ts脚本 解决方案&#xff1a; 1.安装vsCode插件 code runner 2.全局安装ts-node 这一步遇到三个问题&#xff1a; ①.node版本问题&#xff1a;需安装版本18以上node&#xff0c;可使用nvm去控制不同的node版本 ②.certificate has exp…

【以解决】Pyinstaller打包报错IndexError: tuple index out of range

问题 这个问题主要是在Python3.7以上的版本中遇到&#xff0c;用pyinstaller打包的时候发现报错 (pyinstallerEnv) D:\virtualEnv\pyinstallerEnv\Scripts>auto-py-to-exe pygame 2.5.2 (SDL 2.28.3, Python 3.10.0) Hello from the pygame community. https://www.pygame…

PCIe TX端电容

一、问题&#xff1a;PCIe为什么要加电容 PCIe为什么要加电容&#xff1f;具体的作用是什么&#xff1f; 答&#xff1a;因为PCIe Host和Receiver两端的直流偏置会不一样&#xff0c;所以需要在PCIe的传输路径上加电容&#xff0c;这样传输路径上只有AC信号&#xff0c;不存在…

const--类的常量成员函数

在C中,为了禁止成员函数修改数据成员的值,可以将它设置为常量成员函数。设置常量成员函数的方法是在函数原型的后面加上const,形式如下: class x { …………… T f(t1,t2) const{} ………… }; 常量成员函数的作用&#xff1a; 将成员函数设置为const&#xff0c;表明该成员函…

MySQL跨服务器关联查询

1. 首先确认服务器的Federated引擎是否开启 show engines;修改数据库的配制文件my.ini,(我的my.ini的路径为&#xff1a;D:\ProgramData\MySQL\MySQL Server 5.7/my.ini),将federated添加到my.ini文件中 到MySQL的my.cnf配置文件中修改 在 [mysqld] 下方加入 federated 然后重…

CentOS 7.9如何禁止内核自动更新升级

要在 CentOS 7.9 系统中禁止内核自动更新&#xff0c;你可以通过配置 YUM&#xff08;Yellowdog Updater, Modified&#xff09;来实现。这里有几种方法可以阻止内核自动更新&#xff1a; 方法 1: 使用 exclude 选项在 YUM 配置中 编辑 YUM 的配置文件 /etc/yum.conf&#xff…

[SWPUCTF 2021 新生赛]crypto8

第一眼看见是乱码不确定是什么的编码 看了下感觉是UUencode编码 UUencode编码是一种古老的编码方式&#xff0c;通常用于将二进制数据转换成可打印字符的形式。UUencode编码采用一种基于64个字符的编码表&#xff0c;将每3个字节的数据编码为4个可打印字符&#xff0c;以实现…