vue directive 注册局部指令

news2024/11/25 20:37:49

注册局部指令

vue directive 在注册局部指令时,是通过在组件 options 选项中设置 directives 属性。如下:

directives: {
  focus: {
    // 指令的定义
    inserted: function (el) {
      el.focus()
    }
  }
}

在模板中的任何元素上都可以使用新的 v-focus property,如下:

<input v-focus>

自定义钩子函数

自定义钩子函数有两种写法:函数形式(简写)和对象形式(完整形式)。

示例:

<template>
  <div class="content">
    <div id="hook-arguments-example" v-demo:foo.a.b="message"></div>
  </div>
</template>

<script>
export default {
  name: 'Content',
  data () {
    return {
      message: 'hello!'
    }
  },
  directives: {
    demo: {
      bind: function (el, binding, vnode) {
        var s = JSON.stringify
        el.innerHTML =
          'name: ' + s(binding.name) + '<br>' +
          'value: ' + s(binding.value) + '<br>' +
          'expression: ' + s(binding.expression) + '<br>' +
          'argument: ' + s(binding.arg) + '<br>' +
          'modifiers: ' + s(binding.modifiers) + '<br>' +
          'vnode keys: ' + Object.keys(vnode).join(', ')
      }
    }
  }
}
</script>

页面效果:
在这里插入图片描述

有时候不需要其他钩子函数时,可以简写函数。

指令函数可接受所有合法的 JavaScript 表达式,以下实例传入了 JavaScript 对象:

<template>
  <div class="demo-content">
    <p v-demo='msg'></p>
  </div>
</template>

<script>
export default {
  name: 'Content',
  data () {
    return {
      msg: { color: 'green', text: 'hello,world!' }
    }
  },
  directives: {
    demo: {
      bind: function (el, binding) {
        // 简写方式设置文本及背景颜色
        el.innerHTML = binding.value.text
        el.style.backgroundColor = binding.value.color
      }
    }
  }
}
</script>
<style lang='less'>
.demo-content {
  width: 600px;
  p {
    margin-top: 30px;
  }
}
</style>

简写形式只在两个时机触发:

1、指令与元素成功绑定时(元素没有被插入页面);

2、指令所在的模板被重新解析时。

页面效果:
在这里插入图片描述

直接向创建的 Vue 实例的 directives 字典属性添加键值对,键值对即需要添加的自定义指令及对应钩子函数字典对象。键值对可以有多个,对应多个自定义指令。如下:

<template>
  <div class="demo-content">
    <div id="hook-arguments-example" v-demo:foo.a.b="message"></div>
    <p v-bgcolor='backgroundColor'>click me,it will change background color</p>
  </div>
</template>

<script>
export default {
  name: 'Content',
  data () {
    return {
      message: 'hello!',
      backgroundColor: 'blue'
    }
  },
  directives: {
    demo: {
      bind: function (el, binding, vnode) {
        var s = JSON.stringify
        el.innerHTML =
          'name: ' + s(binding.name) + '<br>' +
          'value: ' + s(binding.value) + '<br>' +
          'expression: ' + s(binding.expression) + '<br>' +
          'argument: ' + s(binding.arg) + '<br>' +
          'modifiers: ' + s(binding.modifiers) + '<br>' +
          'vnode keys: ' + Object.keys(vnode).join(', ')
      }
    },
    bgcolor: {
      bind: function (el, binding) {
        el.addEventListener('click', function () {
          el.style.backgroundColor = binding.value
        })
      }
    }
  }
}
</script>
<style lang='less'>
.demo-content {
  width: 600px;
  p {
    margin-top: 30px;
  }
}
</style>

页面效果:
请添加图片描述

自定义指令使用注意点:

  • 指令名称不可以使用 camelCase 命名,多个单词的指令名称使用 kebab-case (定义时需要加引号)
  • 指令的回调函数中 this 不指向 vue
  • 自定义指令使用时加 v- ,定义时不需要加 v-

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端登录状态验证Session和Token的区别

&#xff08;1&#xff09;Session客户端发送一个登录请求&#xff0c;服务器验证登录数据无误&#xff0c;会生成一个sessionID&#xff0c;此ID对应的值即登录状态为已登录。服务器有一个key-value映射表&#xff0c;会把这个ID和登录状态存到此表中。服务器返回的响应头的se…

好用的iPhone 数据恢复软件精选

随着 Apple 的 iTunes / iCloud 备份服务的兴起&#xff0c;我们总是假设这些信息在我们需要的时候可以随时访问。然而&#xff0c;事实是&#xff0c;意想不到的“不幸”发生了&#xff0c;比如 iOS 升级失败、忘记密码&#xff0c;或者更严重的情况&#xff0c;如进水或被盗。…

Ansible的脚本------playbook剧本

一、剧本的前置知识点1、主机清单ansible默认的主机清单是/etc/ansible/hosts文件主机清单可以手动设置&#xff0c;也可以通过Dynamic Inventory动态生成一般主机名使用FQDNvi /etc/ansible/hosts [webserver] #使用方括号设置组名 www1.example.org #定…

想要精通算法和SQL的成长之路 - 接雨水

想要精通算法和SQL的成长之路 - 接雨水前言一. 接雨水前言 想要精通算法和SQL的成长之路 - 系列导航 一. 接雨水 原题链接 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 输入&#xff1a;height [0,…

【RabbitMQ】注册成功后的通知操作

目录前提说明代码实现1. 依赖2. 配置类3. 生产方创建测试类&#xff0c;目的&#xff1a;查看是否队列交换机创建成功&#xff0c;且在队列里面是否有一条待消费的信息。4. 消费方最后前提说明 背景条件&#xff1a;主要是自己学完了RabbitMQ后&#xff0c;想自己多去动手实践…

基于SSM的教务管理系统设计与实现

技术&#xff1a;Java、JSP等摘要&#xff1a;伴随着数字化、网络化、信息化发展的社会&#xff0c;越来越多的行业与时俱进融入到了互联网中&#xff0c;而高校作为为了一个更是培养各色人才之地&#xff0c;更是拥有大量的高科技人才&#xff0c;因此也更应该运用科技来完善教…

单片机开发---ESP32S3移植NES模拟器(二)

书接上文 《单片机开发—ESP32-S3模块上手》 《单片机开发—ESP32S3移植lvgl触摸屏》 《单片机开发—ESP32S3移植NES模拟器&#xff08;一&#xff09;》 暖场视频&#xff0c;小时候称这个为—超级曲线射门&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&am…

Linux 安装jenkins和jdk11

Linux 安装jenkins和jdk111. Install Jdk112. Jenkins Install2.1 Install Jenkins2.2 Start2.3 Error3.Awakening1.1 Big Data -- Postgres4. Awakening1. Install Jdk11 安装jdk11 sudo yum install fontconfig java-11-openjdk 2. Jenkins Install 2.1 Install Jenkins 下…

八、Linux文件 - 文件IO与标准IO的区别

目录 1.Linux标准文件描述符 2.缓存的概念 1.Linux标准文件描述符 文件描述符缩写描述0STDIO标准输入1STDOUT标准输出2STDERR标准错误输出文件IO&#xff1a;是直接调用内核提供的系统调用函数&#xff0c;头文件时unistd.h标准IO&#xff1a;是间接调用系统调用函数&#x…

C语言经典编程题100例(21-40)

21、练习3-2 计算符号函数的值对于任一整数n&#xff0c;符号函数sign(n)的定义如下&#xff1a;请编写程序计算该函数对任一输入整数的值。输入格式:输入在一行中给出整数n。输出格式:在一行中按照格式“sign(n) 函数值”输出该整数n对应的函数值。输入样例1:10输出样例1:sig…

LeetCode刷题系列 -- 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;matrix [[1,2,3,4],[…

Nextcloud通过不被信任的域名访问解决方法 Nextcloud 您正在访问来自不信任域名的服务器

windows电脑在网页端输入“http://192.168.xxx.xxx:8080/login”访问远程ubuntu18.04服务器&#xff0c;访问其docker镜像的Nextcloud&#xff0c;提示“”Nextcloud通过不被信任的域名访问解决方法 Nextcloud 您正在访问来自不信任域名的服务器“”&#xff0c;如下图&#xf…

Jetpack Compose中的绘制流程和自定义布局

Jetpack Compose中绘制流程的三个阶段 与大多数其他界面工具包一样&#xff0c;Compose 会通过几个不同的“阶段”来渲染帧。如果我们观察一下 Android View 系统&#xff0c;就会发现它有 3 个主要阶段&#xff1a;测量、布局和绘制。Compose 和它非常相似&#xff0c;但开头…

2023年java面试题之kafka(5道)

一. kafka介绍&#xff1a; 1.消息分类按不同类别,分成不同的Topic,Topic⼜拆分成多个partition,每个partition均衡分散到不同的服务器(提⾼并发访问的能⼒) 2.消费者按顺序从partition中读取,不⽀持随机读取数据,但可通过改变保存到zookeeper中的offset位置实现从任意位置开…

golang 优雅关闭服务

文章目录一、什么是优雅关闭服务二、使用函数三、使用案例一、什么是优雅关闭服务 先把在执行的任务执行完成&#xff0c;再关闭服务&#xff0c;防止中断服务造成程序错误&#xff0c;数据异常等影响。 二、使用函数 语法&#xff1a; Shutdown(ctx context.Context) error作…

深度学习之循环神经网络(RNN)实现股票预测

深度学习训练营之循环神经网络&#xff08;RNN&#xff09;实现股票预测原文链接环境介绍前置工作设置GPU数据加载划分数据集模型训练数据预处理归一化对样本进行构建构建模型激活模型对模型进行训练结果可视化预测模型评估原文链接 &#x1f368; 本文为&#x1f517;365天深度…

【Python案例实战】爬虫能做哪些很酷很有趣很有用的事情?爱了爱了,简直是神仙代码~(淘宝秒杀、VIP视频解析、wiwi破解等)

前言 &#x1f680; 作者 &#xff1a;“程序员梨子” &#x1f680; **文章简介 **&#xff1a;本篇文章主要是写了opencv的人脸检测、猫脸检测小程序。 &#x1f680; **文章源码免费获取 &#xff1a; 为了感谢每一个关注我的小可爱&#x1f493;每篇文章的项目源码都是无 偿…

Spring Cloud组件

1.服务治理 Spring Cloud Eureka 概念 Eureka提供了服务端组件&#xff0c;我们也称为注册中心。每个服务都向Eureka的服务注册中心&#xff0c;登记自己提供服务的元数据&#xff0c;包括服务的ip地址、端口号、版本号、通信协议等。 原理 服务注册中心&#xff0c;还会以心跳…

【DOCKER】容器概念基础

文章目录1.容器1.概念2.特点3.与虚拟机的对比2.docker1.概念2.命名空间3.核心概念3.命令1.镜像命令2.仓库命令1.容器 1.概念 1.不同的运行环境&#xff0c;底层架构是不同的&#xff0c;这就会导致测试环境运行好好的应用&#xff0c;到了生产环境就会出现bug&#xff08;就像…

DevOps在项目交付场景下的应用

DevOps介绍 DevOps一词是由development和operation两个单词组合而来&#xff0c;代表着研发和交付运营的一体化。DevOps在2009年就被提出&#xff0c;但在学术界和工业界还没有一个广泛认可的定义&#xff0c;一些有代表性的总结&#xff0c;比如John Willis从文化、自动化、度…