Vue自定义指令 传递参数

2023-10-27

在项目开发过程中,难免会遇到各种功能需要使用Vue自定义指令--directive 去实现 。关于directive的使用方式这里就不做过多的介绍了,Vue官方文档中说的还是听明白的。今天讲讲在使用Vue自定义指令过程中

1. 怎么数据传递到自定义指令中

2.怎么讲自定义指令中的数据传回到组件实例中

 

一、将数据传递到自定义指令中

<li class="table-columns" v-for="(tableHead,index) in getTableHeadList" :class="{'column-active':tableHeadIndex === index}" :key="index" :style="{width:tableHead.fieldWidth + 'px' }">

<div class="app-shrink-drag" v-dragWidth="index"></div>

</li>

这里只是传递了一个元素的索引进去,index 可以是其他类型的值 ,比如json对象 {index:1}

 

在指令中 通过binding.value 或者 binding.value.index 接收。

inserted(el, binding, vnode) {

 

 

二、讲自定义指令中的数据传递到组件实例中

 自定义指令可以接收三个参数

  • 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 编译生成的虚拟节点。

    Vue 编译生成的虚拟节点包含当前组件实例对象(vnode.context),可以将自定义指令中修改过的数据,直接赋值实例中的对象属性 列如:

   vnode.context.arr[index].name = 'xxx'。

 

 

  目前只了解到可以这种方式 实现自定义指令和组件实例的相互传值,如果大神们还知道其他方式,欢迎留言。

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

Vue自定义指令 传递参数 的相关文章

随机推荐

  • npm link详解

    前言 npm install 可以把发布在 npmjs 平台上的模块包下载到本地 npm install g 可以把包下下来的同时 还帮我们配置好全局变量 让我们可以直接使用命令而不是通过 node 来执行或者配置 package json
  • 大气传输、大气辐射传输

    大气传输 大气传输理论是指研究红外辐射和大气相互作用的理论 包括吸收 散射 折射和湍流的影响情况 大气特性 压力 温度 密度及各种成分的含量 随时间 地点以一种极为复杂的方式变化 因此辐射在大气中传输受到的影响也是相当复杂的 定义大气传输理
  • IntelliJ IDEA远程调试:使用IDEA Remote Debug进行高效调试的指南

    引言 在开发分布式系统时 调试是一个重要但复杂的环节 开发者通常需要跨越多个服务 模块和线程来追踪和解决问题 在没有远程调试的情况下 许多开发者会在代码中添加各种日志语句 然后重新部署和上线来调试 这种方法不仅费时 而且可能引入额外的错误或
  • 计算机网络笔记第四章传输层

    四 传输层 1 传输层服务 1 服务和协议 服务和协议的目的是让不同主机之间应用进程之间的逻辑通信 传输协议 TCP UDP 运行于终端系统 可能使用多个协议 发送端 应用层报文划分成分段 分解 向下交互给网络层 接收端 重组成报文 向上交
  • [苹果开发者账号]08 苹果App Store定价机制升级引起的问题

    目录 1 问题 2 排查 3 原因 1 问题 周一的时候 突然运营部门的同事 通过工单向开发部门反应 苹果手机用户使用我们的app产品付款时 有多付款的现象 1098元却付款成了1198元 额外多付款了100元 2 排查 app产品因为是虚
  • Git操作

    目录 Git简介 git使用 流程 核心总结 安装 基础命令 编辑 查看仓库状态 工作区操作 工作区内容提交到暂存区 提交暂存区内容到版本库 git log 和git reflog的区别 git reset hard mix soft的区别
  • 华为OD机试 - 转骰子(Java)

    题目描述 骰子是一个立方体 每个面一个数字 初始为左1 右2 前3 观察者方向 后4 上5 下6 用123456表示这个状态 放置在平面上 可以向左翻转 用L表示向左翻转1次 可以向右翻转 用R表示向右翻转1次 可以向前翻转 用F表示向前翻
  • (2023)ConKI: Contrastive Knowledge Injection for Multimodal Sentiment Analysis

    一 整体部分 话不多说 先上整体框架图 同样的和大多数做法一样 对于文本模态 用Bert提取 音频和视频使用transformer提取特征 这里创新的一点是 通过知识注入适配器Adapter将外部知识注入到每个模态 称为特定知识 再和特征提
  • SQLServer数据库 附加数据库时出错;有关详细信息,请单击“消息”列中的超链接的处理方式

    在SQL Server 数据库中附加数据库时出错 这是由于权限的问题 找到数据库所在文件或文件件 我的数据库文件放到了 新建文件夹 2 中了 所以 我设置下这个文件夹的权限 1 点击右键 选中属性 2 点击安全 编辑 添加 高级 立即查找
  • 将hexo项目部署到github

    个人博客预览点击这里 搭建以及优化hexo项目点击这里 一 在github新建一个仓库 二 安装插件来实现一键部署 三 在项目根目录下的 config yml配置文件末尾做如下修改 四 推送到github仓库 一 在github新建一个仓库
  • linux下jps命令找不到的问题 bash: jps: 未找到命令... --- 记录

    jps是用来查看进程的命令 常常要用jps来查看名称服务是否已启动 但是某些机器报错如下 bash jps command not found 解决办法如下 一 检查基础配置 which Java java version 如果指向的是1
  • MySQL 事务 学习

    MySQL 事务 学习 事务 事务 ACID原则 原子性 一致性 隔离性 持久性 原子性 Atomicity 要么都成功 要么都失败 一致性 Consistency 事务前后的数据完整性要保持一致 隔离性 Isolation 每个事务之间相
  • ThreadLocal 的工作原理

    ThreadLocal 是线程的内部数据的存储类 通过它可以在指定线程中存储数据 数据存储以后只有在指定的线程中才能获取到对应的存储的数据 其他线程无法获取到数据 下面通过一个小块代码来分析一下它的使用 private ThreadLoca
  • C++替换string中的\“为“

    1 背景 有一个项目需要我解析后台服务器返回的XML数据 但是因为后台Http接口返回的数据包是Json XML只是其中的一部分 如下图所示 可见 XML数据中 节点的属性数据都是 这实际上是不符合XML规范的 也就无法正常解析 需要我自己
  • 原数组转稀疏数组,稀疏数组转原数组,稀疏数组写入磁盘,从磁盘恢复原数组

    代码实现 import java io BufferedReader import java io File import java io FileReader import java io FileWriter import java u
  • JavaScript 也可以面向对象

    由于js语言本身语法的灵活性 使得在js程序中出现了各种各样的代码风格 但也因为如此 导致了代码的可读性和可维护性大大降低 特别随着项目的不断更新 js代码的不断更新 到后期时甚至连自己的代码都不知然了 因此确定一种好的代码风格是很有必要的
  • FTP,Telnet,SMTP,DNS,TFTP,WWW,POP采用的是TCP协议还是UDP协议?各自默认的端口号是多少?

    FTP 采用TCP协议 默认端口21 TELNET采用TCP协议 默认端口23 SMTP采用UDP协议 默认端口25 DNS采用UDP协议 默认端口53 TFTP采用UDP协议 默认端口69 WWW采用TCP协议 默认端口80 POP采用T
  • C++函数重载 (初学)

    恶补C 中 看视频学到了函数重载 放一些笔记以备后面回顾 函数重载规则 1 函数名相同 2 参数个数不同 参数的类型不同 参数个数不同 参数顺序不同 均可构成重载 3 返回值类型不同则不可以构成重载 如 int p int a 和 floa
  • 【信息收集】指纹识别

    一 指纹识别介绍 指纹收集是信息收集非常重要的一个环节 通常包括系统 中间件 web程序 防火墙四个方面 比如在web程序指纹中的cms识别可以直接查找已有的漏洞进行利用 其他方面也都有助于下一步的攻击操作 先来几个在线工具 yunsee
  • Vue自定义指令 传递参数

    在项目开发过程中 难免会遇到各种功能需要使用Vue自定义指令 directive 去实现 关于directive的使用方式这里就不做过多的介绍了 Vue官方文档中说的还是听明白的 今天讲讲在使用Vue自定义指令过程中 1 怎么数据传递到自定