Vue-自定义指令

article/2025/6/22 17:29:49

自定义指令

简单写法

v-twoAge

功能: 当前年龄翻倍
注意:指令方法名称 小写

  • 代码
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>自定义指令</title><!--  引入Vue  --><script type="text/javascript" src="../js/vue.js"></script><script type="text/javascript" src="../js/dayjs.min.js"></script><style>.base {padding: 5px;height: 100px;}</style></head><body><div id="root"><h1>自定义指令</h1><div><h2>年龄:<span v-text="age"></span></h2><button @click="addAge">age+1</button><h2>年龄x2:<span v-twoAge="age"></span></h2></div></div></body><script type="text/javascript">Vue.config.productionTip = false; // 阻止vue在启动是生成生产提示const vm = new Vue({el: "#root",data: {name: "Vue 扛把子",age:18},methods: {addAge(){this.age++;}},directives:{/**指令函数调用时机1. 指令与元素成功绑定时(初始化)2. 指令所在的模板被重新解析时*/twoage(element,bindObj){console.log(element)console.log(bindObj)/**1. element: 是HtmlElement,dom对象2. bindObj:绑定对象 v-twoAge 指令的值、名称等*/element.innerText = bindObj.value * 2}}});</script>
</html>
  • 效果

在这里插入图片描述

标准写法

v-focus-input

功能: input 框内 展示当前年龄且聚焦
注意:指令方法名称 小写 或者 加引号
格式:‘filterName’:{bind(e,b){},inserted(e,b)(),update(e,b){}}

  • bind:指令与元素成功绑定时调用
  • inserted:指令所在元素被插入页面时调用
  • update:指令所在的模板被重新解析时调用
  • 代码
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>自定义指令</title><!--  引入Vue  --><script type="text/javascript" src="../js/vue.js"></script><script type="text/javascript" src="../js/dayjs.min.js"></script><style>.base {padding: 5px;height: 100px;}</style></head><body><div id="root"><h1>自定义指令</h1><h2>年龄:<span v-text="age"></span></h2><button @click="addAge">age+1</button><h2>年龄x2:<span v-two-age="age"></span></h2><br><input type="text" v-focos-input:value="age"></div></body><script type="text/javascript">Vue.config.productionTip = false; // 阻止vue在启动是生成生产提示const vm = new Vue({el: "#root",data: {name: "Vue 扛把子",age:18},methods: {addAge(){this.age++;}},directives:{/**指令函数调用时机1. 指令与元素成功绑定时(初始化)2. 指令所在的模板被重新解析时*/'two-age'(element,bindObj){console.log(element)console.log(bindObj)/**1. element: 是HtmlElement,dom对象2. bindObj:绑定对象 v-twoAge 指令的表达式、名称、值等*/element.innerText = bindObj.value * 2},'focos-input':{// 指令与元素成功绑定时bind(element,bindObj){console.log("bind")element.value = bindObj.value},// 指令所在元素被插入页面时inserted(element,bindObj){console.log("inserted")// 操作dom插入后的一些操作element.focus(); // input聚焦},// 指令所在的模板被重新解析时update(element,bindObj) {console.log('update')element.value = bindObj.valueelement.focus(); // input聚焦}},}});</script>
</html>
  • 效果

在这里插入图片描述

全局指令

格式:

  • Vue.directive(‘filterName’,function(e,b){})
  • Vue.directive(‘filterName’,{bind(e,b){},inserted(e,b)(),update(e,b){}})
    注意:全局过滤器声明必须在Vue实例化之前
  • 代码
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>自定义指令</title><!--  引入Vue  --><script type="text/javascript" src="../js/vue.js"></script><script type="text/javascript" src="../js/dayjs.min.js"></script><style>.base {padding: 5px;height: 100px;}</style></head><body><div id="root"><h1>自定义指令</h1><h2>年龄:<span v-text="age"></span></h2><button @click="addAge">age+1</button><h2>年龄x2:<span v-two-age="age"></span></h2><br><input type="text" v-focos-input:value="age"></div></body><script type="text/javascript">Vue.config.productionTip = false; // 阻止vue在启动是生成生产提示Vue.directive('two-age', function(element,bindObj){console.log(element)console.log(bindObj)/**1. element: 是HtmlElement,dom对象2. bindObj:绑定对象 v-twoAge 指令的表达式、名称、值等*/element.innerText = bindObj.value * 2});Vue.directive('focos-input',{// 指令与元素成功绑定时bind(element,bindObj){console.log("bind")element.value = bindObj.value},// 指令所在元素被插入页面时inserted(element,bindObj){console.log("inserted")// 操作dom插入后的一些操作element.focus(); // input聚焦},// 指令所在的模板被重新解析时update(element,bindObj) {console.log('updated')element.value = bindObj.valueelement.focus(); // input聚焦}});const vm = new Vue({el: "#root",data: {name: "Vue 扛把子",age:18},methods: {addAge(){this.age++;}},directives:{/**指令函数调用时机1. 指令与元素成功绑定时(初始化)2. 指令所在的模板被重新解析时*/// 'two-age'(element,bindObj){//   console.log(element)//   console.log(bindObj)//   /**//     1. element: 是HtmlElement,dom对象//     2. bindObj:绑定对象 v-twoAge 指令的表达式、名称、值等//   *///   element.innerText = bindObj.value * 2// },// 'focos-input':{//   // 指令与元素成功绑定时//   bind(element,bindObj){//     console.log("bind")//     element.value = bindObj.value//   },//   // 指令所在元素被插入页面时//   inserted(element,bindObj){//     console.log("inserted")//     // 操作dom插入后的一些操作//     element.focus(); // input聚焦//   },//   // 指令所在的模板被重新解析时//   update(element,bindObj) {//     console.log('updated')//     element.value = bindObj.value//     element.focus(); // input聚焦//   }// },}});</script>
</html>
  • 效果

在这里插入图片描述


http://www.hkcw.cn/article/eAsWLpUPMD.shtml

相关文章

力扣HOT100之动态规划:152. 乘积最大子数组

这道题并不是代码随想录里的&#xff0c;我试着用动规五部曲来做&#xff0c;然后不能通过全部测试样例&#xff0c;在第109个测试样例卡住了&#xff0c;如下所示。 原因是可能负数乘以负数会得到最大的乘积&#xff0c;不能单纯地用上一个序列的最大值乘以当前值来判断是否能…

应急响应靶机-web2-知攻善防实验室

题目&#xff1a; 前景需要&#xff1a;小李在某单位驻场值守&#xff0c;深夜12点&#xff0c;甲方已经回家了&#xff0c;小李刚偷偷摸鱼后&#xff0c;发现安全设备有告警&#xff0c;于是立刻停掉了机器开始排查。 这是他的服务器系统&#xff0c;请你找出以下内容&#…

【设计模式-4.6】行为型——状态模式

说明&#xff1a;本文介绍行为型设计模式之一的状态模式 定义 状态模式&#xff08;State Pattern&#xff09;也叫作状态机模式&#xff08;State Machine Pattern&#xff09;&#xff0c;允许对象在内部状态发生改变时改变它的行为&#xff0c;对象看起来好像修改了它的类…

proteus新建工程

1 点击新建工程 2 输入项目名&#xff0c;选择工程文件夹 3 下一步 4 不创建pcb 5 直接下一步 6 点击完成 7 创建完毕

【计算机CPU架构】ARM架构简介

引言&#xff1a;后x86时代的计算革命 2023年全球ARM芯片出货量突破300亿片&#xff0c;这个数字背后是智能手机、物联网设备、数据中心到超级计算机的全面渗透。当Apple M系列芯片以颠覆性效能震撼PC市场&#xff0c;当AWS Graviton3以40%性价比优势冲击云服务&#xff0c;一场…

Python实现P-PSO优化算法优化循环神经网络LSTM分类模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 随着深度学习技术的迅猛发展&#xff0c;循环神经网络&#xff08;RNN&#xff09;及其变体LSTM&#xff08;Long S…

牛客周赛94

随手写一下题解吧&#xff0c;最后一题确实有点烧脑了&#xff0c;一开始没想到&#xff0c;看完题解确实茅塞顿开了 经典校招题 思路&#xff1a;n级台阶&#xff0c;每次只能走1或2格&#xff0c;问你最少得步数&#xff0c;那肯定就是每次都走两个&#xff0c;如果是奇数就…

华为OD机试真题——硬件产品销售方案(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现

2025 A卷 100分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 2025华为OD真题目录+全流程解析/备考攻略/经验分享 华为OD机试真题《硬件产品销售方案》: 目录…

流媒体基础解析:视频清晰度的关键因素

在视频处理的过程中&#xff0c;编码解码及码率是影响视频清晰度的关键因素。今天&#xff0c;我们将深入探讨这些概念&#xff0c;并解析它们如何共同作用于视频质量。 编码解码概述 编码&#xff0c;简单来说&#xff0c;就是压缩。视频编码的目的是将原始视频数据压缩成较…

TDengine 集群运行监控

简介 为了确保集群稳定运行&#xff0c;TDengine 集成了多种监控指标收集机制&#xff0c;并通过 taosKeeper 进行汇总。taosKeeper 负责接收这些数据&#xff0c;并将其写入一个独立的 TDengine 实例中&#xff0c;该实例可以与被监控的 TDengine 集群保持独立。TDengine 中的…

SoftThinking:让模型学会模糊思考,同时提升准确性和推理速度!!

摘要&#xff1a;人类的认知通常涉及通过抽象、灵活的概念进行思考&#xff0c;而不是严格依赖离散的语言符号。然而&#xff0c;当前的推理模型受到人类语言边界的限制&#xff0c;只能处理代表语义空间中固定点的离散符号嵌入。这种离散性限制了推理模型的表达能力和上限潜力…

【LUT技术专题】图像自适应3DLUT

3DLUT开山之作: Learning Image-adaptive 3D Lookup Tables for High Performance Photo Enhancement in Real-time&#xff08;2020 TPAMI &#xff09; 专题介绍一、研究背景二、图像自适应3DLUT方法2.1 前置知识2.2 整体流程2.3 损失函数的设计 三、实验结果四、局限五、总结…

【计算机网络】 ARP协议和DNS协议

文章目录 【计算机网络】ARP协议和DNS协议&#xff08;知识点详细&#xff09;一、ARP协议&#xff08;地址解析协议&#xff09;1. **协议功能**2. **ARP报文结构**3. **工作流程**&#xff08;1&#xff09;**正向ARP&#xff08;已知IP&#xff0c;求MAC&#xff09;**&…

普中STM32F103ZET6开发攻略(一)

各位看官老爷们&#xff0c;点击关注不迷路哟。你的点赞、收藏&#xff0c;一键三连&#xff0c;是我持续更新的动力哟&#xff01;&#xff01;&#xff01; 目录 普中STM32F103ZET6开发攻略 1. GPIO端口实验——点亮LED灯 1.1 实验目的 1.2 实验原理 1.3 实验环境和器材…

Azure DevOps 管道部署系列之二IIS

本博客旨在提供如何使用 Azure DevOps YAML 管道部署到虚拟机上的 IIS 的实用指南。 开始之前,您需要做好以下准备: 您拥有要部署的服务器的访问权限以及 PowerShell 的管理员访问权限。您拥有要部署的远程服务器的互联网访问权限。您拥有在服务器上安装 .NET Core 托管包的…

Linux命令之ausearch命令

一、命令简介 ausearch 是 Linux 审计系统 (auditd) 中的一个实用工具,用于搜索审计日志中的事件。它是审计框架的重要组成部分,可以帮助系统管理员分析系统活动和安全事件。 二、使用示例 1、安装ausearch命令 Ubuntu系统安装ausearch命令,安装后启动服务。 root@testser…

2025山东CCPC题解

文章目录 L - StellaD - Distributed SystemI - Square PuzzleE - Greatest Common DivisorG - Assembly Line L - Stella 题目来源&#xff1a;L - Stella 解题思路 签到题&#xff0c;因为给出的字母不是按顺序&#xff0c;可以存起来赋其值&#xff0c;然后在比较。 代码…

复数三角不等式简介及 MATLAB 演示

复数三角不等式简介及 MATLAB 演示 1. 复数三角不等式简介 复数三角不等式&#xff08;Complex Triangle Inequality&#xff09;是复数的一种重要性质&#xff0c;它类似于普通的三角不等式&#xff0c;但适用于复数空间。具体来说&#xff0c;复数三角不等式可以描述复数之…

学术合作交流

想找志同道合的科研小伙伴&#xff01;研究方向包括&#xff1a;计算机视觉&#xff08;CV&#xff09;、人工智能&#xff08;AI&#xff09;、目标检测、行人重识别、行人搜索、虹膜识别等。欢迎具备扎实基础的本科、硕士及博士生加入&#xff0c;共同致力于高质量 SCI 期刊和…

2025-05-31 Python深度学习10——模型训练流程

文章目录 1 数据准备1.1 下载与预处理1.2 数据加载 2 模型构建2.1 自定义 CNN 模型2.2 GPU加速 3 训练配置3.1 损失函数3.2 优化器3.3 训练参数 4 训练循环4.1 训练模式 (model.train())4.2 评估模式 (model.eval()) 5 模型验证 本文环境&#xff1a; Pycharm 2025.1Python 3.1…