【微信小程序】事件传参的两种方式
文章目录
- 1.什么是事件传参
- 2.data-*方式传参
- 3.mark自定义数据
1.什么是事件传参
事件传参:在触发事件时,将一些数据作为参数传递给事件处理函数的过程,就是事件传参
在微信小程序中,我们经常会在组件上添加一些自定义数据,然后在事件处理函数中获取这些自定义数据,从而完成业务逻辑的开发.
2.data-*方式传参
在组件上 通过 data-*“的方式 定义需要传递的数据,其中*是自定义的属性,例如:<view data-id=“100"bindtap="handler”/>然后通过事件对象进行获取自定义数据
示例:
wxml:
<button bindtap="btuHandler" data-id="1" data-name="zhangsan">事件传参</button>
.js:
Page({btuHandler(e){console.log(e);},
})
结果:

可以看到有两个地方出现了我们要传递的参数
- currentTarget: 事件绑定者,也就是指:哪个组件绑定了当前事件处理函数
- target: 事件触发者,也就是指:哪个组件触发了当前事件处理函数
因为事件绑定者和事件触发者都是同一个组件,因此通过currentTarget和target都能获取到我们传递的数据.
一般来说,搞清楚时间绑定者和事件触发者,就能够正确获取数据了.实在不行还可以直接打印事件对象,进行数据的查看
有点地方需要注意一下,如果要传递的数据的变量名也带-:
例如:
<button bindtap="btuHandler" data-user-id="1" data-userName="zhangsan">事件传参</button>
注意这里的ata-user-id="1" data-user-name="zhangsan"

⭐user-id变成了userId(小驼峰),userName变成了username(全小写). 这点需要注意
3.mark自定义数据
小程序进行事件传参的时候,除了使用data-*属性传递参数外,还可以 使用 mark 标记传递参数
mark 是一种自定义属性,可以在组件上添加,用于来识别具体触发事件的 target 节点。同时 mark 还可以用于承载一些自定义数据
然后通过事件对象进行获取自定义数据,在组件上使用 mark:自定义属性 的方式将数据传递给事件处理函数,例如:<view mark:id=“100"bindtap="handler" />
示例:
wxml:
<button mark:userid = "1" mark:userName = "zhangsan" bind:tap="markHandler">mark传参</button>
注意使用mark不能使用user-id(变量名-变量名)的格式传递数据
js:
Page({markHandler(e){console.log(e);console.log(e.mark.userid);console.log(e.mark.userName);},
})
运行结果:

另外使用mark方式通过事件对象获取到的是 触发事件的节点 已经 父节点身上所有的 mark 数据
示例:
wxml:
<view mark:parentid = "2" mark:parentName = "lisi" bind:tap="parentHandler"><button mark:userid = "1" mark:userName = "zhangsan" bind:tap="markHandler">mark传参</button>
</view>
wcss:
view{display: flex;height: 200rpx;background-color: aqua;align-items: center;
}
js:
Page({markHandler(e){console.log(e);},parentHandler(e){console.log(e);},
})
界面如下:

首先点击蓝色区域,mark数据只有父组件的数据

点击按钮,可以看到父组件和子组件的数据,同时父组件和子组件的绑定事件方法触发了两次

mark 和 data-*很相似,主要区别在于
- mark 包含从触发事件的节点到根节点上所有的 mark:属性值
- currentTarget.dataset 或者 target.dataset 只包含事件绑定者 或者 事件触发者那一个节点的 data-*值
相关文章:
【微信小程序】事件传参的两种方式
文章目录 1.什么是事件传参2.data-*方式传参3.mark自定义数据 1.什么是事件传参 事件传参:在触发事件时,将一些数据作为参数传递给事件处理函数的过程,就是事件传参 在微信小程序中,我们经常会在组件上添加一些自定义数据,然后在…...
前端针对需要递增的固定数据
这里递增的是1到12 data(){return{cycleOptions:Array.from({ length: 12 }, (v, k) > ({value: k 1,label: String(k 1)})),} }<el-select v-model"ruleForm.monthLength" placeholder"请选择周期数量"><el-optionv-for"item in cycle…...
红酒保存中的氧气管理:适度接触与避免过度氧化
在保存云仓酒庄雷盛红酒的过程中,我们不得不面对一个微妙的问题:氧气管理。氧气,这个我们生活中无处不在的气体,对于红酒的保存却有着至关重要的影响。适度接触氧气对红酒的陈年过程和品质维护具有积极作用,然而过度氧…...
从零开始搭建开源智慧城市项目(三)上升线效果
前言 上一节实现了添加建筑物线框,模型外墙和道路地面材质添加。这一节准备通过简单的shader实现上升线效果。 思路 简单的说一下思路,通过获取模型顶点坐标所在的高度Z来进行筛选,高度再某一区间内设置成上升线的颜色,其余高度…...
unity基础(五)地形详解
目录 一 创建地形 二 调整地形大小 三 创建相邻地形 四 创建山峰 五 创建树木 七 添加风 八 添加水 简介: Unity 中的基础地形是构建虚拟场景的重要元素之一。 它提供了一种直观且灵活的方式来创建各种地形地貌,如山脉、平原、山谷等。 通过 Unity 的地形…...
postman接口测试工具详解
Postman 是一个功能强大的 API 开发和测试工具,广泛应用于开发人员和测试人员进行 API 的调试、测试、文档生成等工作。以下是对 Postman 的详细介绍。 1. 功能概览 1.1 请求构建 请求类型: 支持 GET、POST、PUT、DELETE、PATCH、OPTIONS 等多种 HTTP 方法。URL …...
2024年护网行动全国各地面试题汇总(3)作者:————LJS
应急响应基本思路和流程 收集信息:收集客户信息和中毒主机信息,包括样本判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS 等等抑制范围:隔离使受害⾯不继续扩⼤深入分析:日志分…...
计算机专业的学生要达到什么水平才能进入大厂工作?越早知道越好
计算机专业的学生要达到什么水平才能进入BAT等大厂工作?越早知道越好. 一、算法题 各大公司笔试、面试基本都考这个,别的不说,《剑指Offer》所有题目背下来,Leetcode高频题目刷个一两百遍,搞过ACM也可以,…...
巡检费时费力?试试AI自动巡检
随着企业IT规模不断增长,设备、系统越来越多,运维工作压力也与日俱增。保障设备、系统健康稳定地运行,日常巡检是运维工作不可或缺的部分。通过巡检可以及时发现设备、系统的异常问题,提前预防及时处理,避免问题扩大产…...
46-4 等级保护 - 网络安全等级保护概述
一、网络安全等级保护概述 原文:没有网络安全就没有国家安全 二、网络安全法 - 安全立法 中华人民共和国主席令 第五十三号 《中华人民共和国网络安全法》已于2016年11月7日由中华人民共和国第十二届全国人民代表大会常务委员会第二十四次会议通过,并自2017年6月1日起正式…...
css引入方式有几种?link和@import有什么区别?
在CSS中,引入外部样式表的方式主要有两种:<link>标签和import规则。 使用<link>标签引入外部样式表: <link rel"stylesheet" href"path/to/style.css">这种方式是在HTML文档的<head>部分或者…...
使用‘消除’技术绕过LLM的安全机制,不用训练就可以创建自己的nsfw模型
开源的大模型在理解和遵循指令方面都表现十分出色。但是这些模型都有审查的机制,在获得被认为是有害的输入的时候会拒绝执行指令,例如会返回“As an AI assistant, I cannot help you.”。这个安全功能对于防止误用至关重要,但它限制了模型的…...
解决使用elmessage 没有样式的问题
错误情况 这里使用了一个消息提示,但是没有出现正确的样式, 错误原因和解决方法 出现这种情况是因为,在全局使用了按需导入,而又在局部组件中导入了ElMessage组件,我们只需要将局部组件的import删除就可以了 import…...
pxe批量部署linux介绍
1、PXE批量部署的作用及必要性: 1)智能实现操作系统的批量安装(无人值守安装)2)减少管理员工作,提高工作效率3)可以定制操作系统的安装流程a.标准流程定制(ks.cfg)b.自定义流程定制(ks.cfg(%pos…...
RAG 实践-Ollama+AnythingLLM 搭建本地知识库
什么是 RAG RAG,即检索增强生成(Retrieval-Augmented Generation),是一种先进的自然语言处理技术架构,它旨在克服传统大型语言模型(LLMs)在处理开放域问题时的信息容量限制和时效性不足。RAG的…...
【超详细】使用RedissonClient实现Redis分布式锁
使用RedissonClient实现Redis分布式锁是一个非常简洁和高效的方式。Redisson是一个基于Redis的Java客户端,它提供了许多高级功能,包括分布式锁、分布式集合、分布式映射等,简化了分布式系统中的并发控制。 添加依赖 首先,你需要…...
CC攻击的有效应对方案
随着互联网的发展,网络安全问题愈发突出。CC攻击(Challenge Collapsar Attack),一种针对Web应用程序的分布式拒绝服务(DDoS)攻击方式,已经成为许多网络管理员和网站拥有者不得不面对的重大挑战。…...
自动驾驶基础一车辆模型
模型概述: 自行车动力学模型通常用于研究自行车在骑行过程中的行为,如稳定性、操控性和速度等。模型可以基于不同的简化假设和复杂度,从简单的二维模型到复杂的三维模型,甚至包括骑行者的动态。力学方程: 基础物理学方…...
机器学习:数据分布的漂移问题及应对方案
首先,让我们从一位高管告诉我的一个故事开始,很多读者可能对此感同身受。 大约两年前,他的公司聘请了一家咨询公司开发一个机器学习模型,帮助他们预测下周每种食品杂货需要多少,以便他们可以相应地补货。这家咨询公司…...
公链常用的共识算法
1. 工作量证明(Proof of Work, PoW) 工作原理:要求节点(矿工)解决一个数学难题,这个过程称为挖矿。第一个解决难题的矿工将有权添加一个新的区块到区块链上,并获得一定数量的加密货币作为奖励。…...
别再乱调灯光和材质了!UE5渲染性能优化的三个核心禁忌与正确姿势
UE5渲染性能优化的三大禁忌与实战解决方案 在虚幻引擎5的渲染管线中,性能优化往往成为项目后期最棘手的挑战之一。许多开发者习惯性地将注意力集中在视觉效果上,却忽略了渲染效率的平衡。当场景复杂度达到临界点时,那些看似无害的高精度贴图…...
从网吧到企业网:静态路由在小型网络中的3种典型应用场景
从网吧到企业网:静态路由在小型网络中的3种典型应用场景 在当今数字化商业环境中,网络连通性已成为各类企业运营的基础需求。对于中小型商业场所如连锁网吧、零售分店或小微企业分支机构而言,如何在有限预算下构建稳定可靠的网络架构…...
保姆级教程:用C语言数组扫描法,搞定智能车摄像头识别赛道‘L型’拐点
智能车竞赛实战:C语言数组扫描法精准识别L型赛道拐点 在智能车竞赛的赛道上,L型拐点往往是让许多参赛队伍"翻车"的关键节点。传统横向巡线算法在这里容易丢失赛道边界,而基于纵向扫描的数组分析法却能像手术刀般精准定位特征点。本…...
保姆级教程:在Ubuntu 16.04虚拟机上,一步步编译SSD202开发板的完整镜像(含kernel 4.9.84和buildroot 2020.05)
SSD202开发板镜像编译实战:从虚拟机配置到完整系统构建 1. 环境准备与工具链配置 在Ubuntu 16.04虚拟机上搭建嵌入式开发环境,首先要解决的是64位系统对32位工具链的兼容性问题。许多开发者在这一步就会遇到第一个"坑"——缺少必要的32位库文件…...
我国网络安全行业前景如何?是否可以入行?有哪些岗位?
我国网络安全行业前景如何?是否可以入行?有哪些岗位? 网络空间安全专业简称“网络安全专业”,主要以信息构建的各种空间领域为主要研究对象,包括网络空间的组成、形态、安全、管理等。我国网络空间安全专业于2015年设立…...
深入剖析PHP 7.4.21开发服务器源码泄露漏洞及其复现过程
1. PHP开发服务器源码泄露漏洞初探 最近在测试PHP 7.4.21开发服务器时,我发现一个挺有意思的漏洞——源码可以直接被读取。这可不是闹着玩的,想象一下你的网站源代码像裸奔一样暴露在外,数据库配置、加密逻辑全都一览无余。这个漏洞影响所有P…...
UniApp应用变现实战:用uni-ad激励视频提升用户留存与收益的配置心得
UniApp应用变现实战:用uni-ad激励视频提升用户留存与收益的配置心得 在移动应用生态中,广告变现与用户体验的平衡一直是开发者面临的难题。激励视频作为一种用户主动参与的广告形式,不仅能为开发者带来收益,还能通过奖励机制提升用…...
lychee与其他链接检查工具对比:为什么选择Rust构建的lychee
lychee与其他链接检查工具对比:为什么选择Rust构建的lychee 【免费下载链接】lychee ⚡ Fast, async, stream-based link checker written in Rust. Finds broken URLs and mail addresses inside Markdown, HTML, reStructuredText, websites and more! 项目地址…...
Catia学习教程
写在前面 自学Catia的时候发现大部分教程在隔壁B站,CSDN上教程比较少,记录一下自己的学习过程,要有一定的AutoCAD和Solidworks基础,很多指令是相似的。 一、软件简介 CATIA(Computer Aided Three-dimensional Intera…...
DAMOYOLO-S实战教程:对接企业OA系统实现图片自动审核与标注
DAMOYOLO-S实战教程:对接企业OA系统实现图片自动审核与标注 1. 引言:从手动审核到智能自动化的跨越 想象一下这个场景:你是一家电商公司的运营,每天有上千张商品图片需要上传到后台。按照公司规定,每张图片都需要人工…...
