vue自定义指令

2023-10-27

除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令。有的情况下,对普通 DOM 元素进行底层操作,这时候就会用到自定义指令
下面定义了一个v-test指令绑定数据name

<template>
  <div class="hello">
  	<div v-test='name'></div>
  </div>
</template>
<script>
export default {
  data () {
    return {
     name:'我是名字',
    }
  },
  directives:{
  	test:{
	    inserted: function (el,binding) {// 指令的定义
	       / /el为绑定元素,可以对其进行dom操作
	       console.log(binding) //一个对象,包含很多属性属性
	    },
	    bind: function (el, binding, vnode) {
		    el.innerHTML =binding.value
		  }
  	}
  },
  created:function(){
  },
  mounted:function(){ 
  },
  methods:{
  }
}
</script>

效果如下
在这里插入图片描述
我们可以全局自定义一个指令v-red,来修改HTML元素的背景色为红色:

<div id="box">
        hello<span v-red> welcome</span>
    </div>
    <script type="text/javascript">
        Vue.directive('red',{
            inserted:function(el){
                el.style.background = 'red';
            }
        });
        var vm = new Vue({
            data:{
            
            },
        }).$mount('#box'); 
    </script>

在这里插入图片描述

钩子函数

一个指令定义对象可以提供如下几个钩子函数 (均为可选):
inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)。

bind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。

update:所在组件的 VNode 更新时调用,但是可能发生在其子 VNode 更新之前。指令的值可能发生了改变,也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新 (详细的钩子函数参数见下)。

componentUpdated:指令所在组件的 VNode 及其子 VNode 全部更新后调用。

unbind:只调用一次,指令与元素解绑时调用。

指令钩子函数会被传入以下参数:
el:指令所绑定的元素,可以用来直接操作 DOM 。
binding:一个对象,包含以下属性:
name:指令名,不包括 v- 前缀。
value:指令的绑定值,例如:v-my-directive=“1 + 1” 中,绑定值为 2。
oldValue:指令绑定的前一个值,仅在 update 和 componentUpdated 钩子中可用。无论值是否改变都可用。
expression:字符串形式的指令表达式。例如 v-my-directive=“1 + 1” 中,表达式为 “1 + 1”。
arg:传给指令的参数,可选。例如 v-my-directive:foo 中,参数为 “foo”。
modifiers:一个包含修饰符的对象。例如:v-my-directive.foo.bar 中,修饰符对象为 { foo: true, bar: true }。
vnode: Vue编译生成的虚拟节点。移步 VNode API 来了解更多详情。
oldVnode:上一个虚拟节点,仅在 update 和 componentUpdated 钩子中可用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue自定义指令 的相关文章

  • excel文件隔行删除数据并保存

    现阶段用代码实现 隔四行删除数据 import pandas as pd 读取 Excel 文件 excel file xxxx xlsx df pd read excel excel file rows to keep 要删除的行数 sk
  • 超详细!!服务器搭jupyter notebook及挂起和关闭进程

    再次警告 没有在小小demo上试验成功的代码不要放到服务器上造垃圾 一 服务器上配置jupyter 1 1 ssh连接到服务器 cd到你想建立jupyer的服务器目录下执行 jupyter notebook generate config
  • 【今日CV 计算机视觉论文速览 第98期】Wed, 10 Apr 2019

    今日CS CV 计算机视觉论文速览 Wed 10 Apr 2019 Totally 67 papers 上期速览 更多精彩请移步主页 Interesting 通用物体检测框架 在不需要先验知识的强化下实现了横跨多个域的目标检测 这要通过引入
  • 浅谈get和post的区别

    一 不完全正确的网红答案 GET的URL会有长度上的限制 则POST的数据则可以非常大 POST比GET安全 ET请求的数据会附在URL之后 POST把提交的数据则放置在是HTTP包的包体中 二 为什么是不完全正确的答案 HTTP协议对GE
  • python命令行执行函数的方法

    方法一 直接调用函数运行 这种是最简单且直观的方法 def task print running task task 如果是在类中 也是如此 class Task def task self print running task Task
  • python 为什么so库import失败?

    为什么so库import失败 查看支持的so后缀名 修改对应so文件名称 import importlib machinery print importlib machinery all suffixes 例如python3 6升级3 8后
  • log日志使用教程(slf4j log4j logback)

    目录 一 前言 二 常用日志框架 框架对比 2 1 slf4j 框架 2 2 logback 框架 配置 Appender 日志级别过滤filter 2 3 log4j2框架 三 log4j vs logback 推荐logback 一 前
  • 第三大的数

    给定一个非空数组 返回此数组中第三大的数 如果不存在 则返回数组中最大的数 要求算法时间复杂度必须是O n 该题来自力扣题库 示例 示例 1 输入 3 2 1 输出 1 第三大的数是 1 示例 2 输入 1 2 输出 2 第三大的数不存在

随机推荐

  • python中的tkinter包的使用-Scale尺度

    下面这个例子定义了一个尺度 从5到11 拖动滚动条 在label上显示当前尺度 窗口界面 拖动滚动条 代码 import tkinter as tk window tk Tk window title my window window ge
  • 重中之重-K8S的初识

    重中之重 K8S的初识 一 kubernetes概述 1 K8S的含义 2 K8S的优点 3 K8S的特性 4 Kubernetes 集群架构与组件 二 kubernetes架构核心组件 1 Master组件 2 配置存储中心 3 Node
  • JS 基础面试题

    前端全部面试题 https blog csdn net qq 40055200 article details 104637574 1 基本数据类型有哪几种 高频 了解包装对象吗 undefined null boolean string
  • 考试系统web服务器

    servlet jsp js css 基础知识 jqueary 框架的使用 环境tomcat eclipse mysql workbench 项目地址 https github com cuizehui ExamSystem 考试系统的敏捷
  • ESP8266 使用TCP通信协议

    TCP服务器示例 include
  • 8、sql变更导致canal堵塞问题排查

    一 场景描述 20220120 15 50左右发布 发布单 dba采用rename方式变更表结构 导致变更时刻点 表名称和topic无法匹配上 导致canal爆找不到topic的错误 然后canal陷入死循环一直投递那个时刻点的日志 此现象
  • 人物

    今有伟人俩 列于此 曾国藩 稻盛和夫 以后慢慢写文介绍
  • react-native-art画二次贝塞尔曲线实现

    1 关于react native ART库的使用 目前网上能搜到的少之又少 简书上的一篇react native art 绘图入门 从基本上讲解了一下react native art的使用方法 但是只是简单的横竖曲线的绘制 但项目中有一个需
  • window下,nacos的启动问题。

    1 jdk一定是需要64位的 2 启动方式 startup m standalone 在目录下单机启动 或者修改bin目录下的startup文件 3 配置数据库 建表语句在conf文件下nacos mysql 在application文件中
  • 业务逻辑漏洞-验证码重复利用

    本文为学习笔记 仅限学习交流 不得利用 从事危害国家或人民安全 荣誉和利益等活动 8 23 业务逻辑漏洞 高危漏洞 验证码重复利用 恶意用户批量注册 注册页面 正常输入注册相关信息 打开BP 开启代理服务 点击注册同时抓包 抓包的注册信息
  • 阿里云服务器端口怎么打开?详细教程一步步

    阿里云服务器端口怎么打开 云服务器ECS端口在安全组中开启 轻量应用服务器端口在防火墙中打开 新手站长以开通80端口为例来详细说下阿里云服务器端口开放图文教程 其他的端口如8080 3306 443 1433也是同样的方法进行开启端口 目录
  • 微信小程序之短信验证码

    目录 1 前提 2 开通静态 2 1 点击云开发中更多 gt 静态网站 2 2 点击开通 使用管理员验证即可 3 短信发送规则 3 1 短信内容 3 2 短信规则 3 3 短信内容长度计算规则 3 4 短信内容规范 3 5 短信发送记录查询
  • Tensorflow2.0

    注 本文的python实现基于论文 Dynamic scheduling for flexible job shop with new job insertions by deep reinforcement learning 论文详情可见
  • 线性代数1 矩阵

    1 概念定义 1 1 正定矩阵 Positive definite matrix 1 2 实对称矩阵 若矩阵A为实对阵矩阵 则满足A A T a ij a ji 1 3 埃尔米特矩阵 Hermitian matrix 埃尔米特矩阵中每一个第
  • node.js回调函数的一点理解

    刚开始入坑node js 花了一下午才搞清楚什么是回调函数 回调函数是作为参数传递给另一个函数的 比如说function human man callback 这里的callback就是回调函数 看了很多篇文章有一句话给我留下了很深的印象就
  • java虚拟机有哪几部分组成,Java虚拟机基本结构

    Java虚拟机是JVM类语言的根基 其中动态内存管理和垃圾收集技术是JVM中最重要的特性 本节主要讲述其中的内存管理相关概念 一 Java虚拟机的基本结构 Java虚拟机结构 jpg 如图所示为Java虚拟机的基本结构 每个模块介绍如下 类
  • JavaFX技巧3:使用回调接口

    作为UI框架开发人员 提供自定义控件外观和行为的方法是我工作的一部分 在许多情况下 这是通过允许框架用户在控件上注册工厂来完成的 过去 我会为此创建一个工厂接口 并在框架内提供一个或多个默认实现 这些事情在JavaFX中的处理方式有所不同
  • 短视频矩阵管理系统私信群聊功能源码开发分享

    短视频获客工具的兴起 也有越来越多的企业及商家在发现了更多商机 除了在做短视频推广获客的同时 也有不少意向客户潜藏在评论区需要我们深度挖掘 那么对于一些流量比较高的账号 想在成千上万的评论区里挖掘意向客户 还是挺消耗人力的 那么一款自动化获
  • VMware虚拟机官网下载安装,虚拟机中安装Linux系统CentOS7(图文详解)

    虚拟机的安装下载和用法 第一章 VMware下载 第二章 以VMware12为例安装虚拟机 第三章 虚拟机安装Linux的CentOS7 第四章 CentOS系统设置 第五章 查看网络是否连接成功 友情提醒 先看文章目录 大致了解文章知识点
  • vue自定义指令

    除了核心功能默认内置的指令 v model 和 v show Vue 也允许注册自定义指令 有的情况下 对普通 DOM 元素进行底层操作 这时候就会用到自定义指令 下面定义了一个v test指令绑定数据name