当前位置: 首页 > news >正文

vue2 自定义指令

文章目录

  • 自定义局部指令
    • 定义指令注意的点:
    • 回调函数接受参数:
    • 回调函数执行时机:
    • 写法一 :函数式写法
    • 写法二、 对象式
  • 自定义全局指令
    • 语法:
    • 函数写法:
    • 对象写法:

自定义局部指令

directives这个配置项内,可以定义多个自定义指令,与data同级

定义指令注意的点:

  • v- 不需要写
  • Vue官方建议,指令名都小写,如果是多个单词,用‘-’连接
  • 语法:指令名:回调函数

回调函数接受参数:

  1. el:指令所绑定的元素,可以用来直接操作 DOM
  2. binding:一个对象,包含和自定义的指令有关的信息
    • name:指令名,不包括 v- 前缀
    • value:指令的绑定值,例如:v-my-directive="1 + 1" 中,绑定值为 2
  3. …更多可参考vue2官网 vue2自定义指令

回调函数执行时机:

  1. 执行时机1:标签和指定第一次绑定的时候
  2. 执行时机2:当模版被重新解析的时候

写法一 :函数式写法

 let vm = new Vue({el: '#root',data(){return {}},directives: {// 写法一 :函数式写法    // 指令名:回调函数"text-danger": function (element, binding) {// 与属性绑定,且将文字颜色替换为红色element.innerText = binding.value;element.style.color = "red";},}})

写法二、 对象式

 let vm = new Vue({el: '#root',data(){return {}},directives: {// 写法二、 对象式// 指令名:{}"bind-blue": {// 对象中有3个固定写法的函数,这三个函数在不同的时机会被调用// 像这种在特定的时间节点调用特定的函数,这种函数叫钩子函数// bind() 元素与指令初次绑定时执行bind(element, binding) {element.value = binding.value;},// inserted()  元素被插入页面之后执行inserted(element, binding) {element.parentNode.style.backgroundColor = "green";},//update() 当模版重新解析的时候,会被执行update(element, binding) {element.value = binding.value;},},}})

自定义全局指令

只是配置项的写法不一样,为全局配置写法,写在Vue实例上面,其它和局部自定义属性一样

语法:

Vue.directive(
)

函数写法:

  // 函数式 Vue.directive('指令名',回调函数)Vue.directive('text-danger',function(element,binging){element.innerText=binging.valueelement.style.color='red'})

对象写法:

 // 对象式 Vue.directive('指令名',{bind(){},inserted(){},update(){}})Vue.directive('bind-blue',{bind(element,binging){element.value=binging.value},inserted(element,binging){element.parentNode.style.backgroundColor='blue'},update(element,binging){element.value=binging.value}})

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • OpenAI模型GPT-4o、GPT-4、Gemini 1.5性能比较
  • R实验 方差分析
  • 【运维项目经历|024】MySQL性能优化与监控平台
  • 神奇动物在哪里?斯洛文尼亚旅游之野生动物寻踪
  • 2024年郫都区区级农业生产社会化服务重点服务组织评定申报条件材料、程序要求
  • Python筑基之旅-MySQL数据库(四)
  • Java+IDEA+SpringBoot药物不良反应ADR智能监测系统源码 ADR智能化监测系统源码
  • python数据分析——数据可视化(图形绘制)
  • 【BI 可视化插件】怎么做? 手把手教你实现
  • 基于springboot+html的二手交易平台(附源码)
  • Android软件渲染流程
  • 结构体常见问题
  • 项目引用图片后乱码?
  • 苹果WWDC 2024或将推出AI生成的表情符号并宣布与OpenAI的合作|TodayAI
  • vue小记——上传图片小组件
  • ➹使用webpack配置多页面应用(MPA)
  • javascript 哈希表
  • JavaScript 一些 DOM 的知识点
  • Redis中的lru算法实现
  • Redux系列x:源码分析
  • Tornado学习笔记(1)
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 如何优雅地使用 Sublime Text
  • 入口文件开始,分析Vue源码实现
  • 少走弯路,给Java 1~5 年程序员的建议
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 正则与JS中的正则
  • Java数据解析之JSON
  • ​​​【收录 Hello 算法】9.4 小结
  • #define 用法
  • (4)事件处理——(7)简单事件(Simple events)
  • (7)svelte 教程: Props(属性)
  • (7)摄像机和云台
  • (poj1.2.1)1970(筛选法模拟)
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转载)深入super,看Python如何解决钻石继承难题
  • .mp4格式的视频为何不能通过video标签在chrome浏览器中播放?
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .net core 连接数据库,通过数据库生成Modell
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • @html.ActionLink的几种参数格式
  • [.NET]桃源网络硬盘 v7.4
  • [Android Pro] AndroidX重构和映射
  • [android] 看博客学习hashCode()和equals()
  • [Arduino学习] ESP8266读取DHT11数字温湿度传感器数据
  • [C++][opencv]基于opencv实现photoshop算法色阶调整
  • [c++刷题]贪心算法.N01
  • [CLickhouse] 学习小计
  • [EFI]Atermiter X99 Turbo D4 E5-2630v3电脑 Hackintosh 黑苹果efi引导文件