微信小程序开发系列(十六)·事件传参·data-*自定义数据

        事件传参:在触发事件时,将一些数据作为参数传递给事件处理函数的过程,就是事件传参。

        在微信小程序中,我们经常会在组件上添加一些自定义数据,然后在事件处理函数中获取这些自定义数据,从而完成业务逻辑的开发。

        在组件上通过data-"的方式定义需要传递的数据,其中*是自定义的属性,例如: <view data-id="100" bindtap="handier"/>然后通过事件对象进行获取自定义数据。

步骤一:创建按钮

        打开微信开发者工具,找到“分类”,根据其路径,找到cate.wxml文件,在其中创建一个按钮,写入代码:


<view><button>按钮</button>
</view>

步骤二:按钮样式配置

        找到cate.scss文件,对按钮样式进行配置:


view{display: flex;height: 300rpx;background-color: skyblue;align-items: center;
}

步骤三:创建事件处理函数

        找到cate.wxml文件,给其创建一个事件处理函数:


<view><button bind:tap="btnHandler">按钮</button>
</view>

步骤四:进行事件传参

        事件传参,如果需要进行事件传参,需要再组件上通过 data- 的方式进行传递数据:


<view><!-- 如果需要进行事件传参,需要再组件上通过 data- 的方式进行传递数据 --><button bind:tap="btnHandler" data-id="1" data-name="tom">按钮</button>
</view>

步骤五:事件对象的打印

        如果想接受处理到的数据需要通过事件对象来进行,找到cate.js文件,进行事件对象的打印:


Page({// 给事件处理函数添加事件对象“event”btnHandler(event){// 打印事件对象console.log(event)},})

步骤六:获取事件处理函数数据

currentTarget:事件绑定者,也就是,哪个组件绑定了当前事件处理函数。

target:事件触发者,也就是,哪个组件触发了当前事件处理函数。

1.  currentTarget 和 target 是指同一种组件数据获取

        currentTarget 和 target 都是指按钮,因为是按钮绑定的事件处理函数,同时点击按钮触发事件处理函数。这时候通过谁来获取数据都可以。


Page({// 给事件处理函数添加事件对象“event”btnHandler(event){// 打印事件对象console.log(event.currentTarget.dataset.id)console.log(event.target.dataset.name)},})

2.  currentTarget 和 target 不是指同一种组件数据获取

         找到cate.wxml文件,对事件处理函数进行更改:


<view bind:tap="parentHandler" data-parentid="1" data-parentname="tom"><!-- 如果需要进行事件传参,需要再组件上通过 data- 的方式进行传递数据 --><!-- <button bind:tap="btnHandler" data-id="1" data-name="tom">按钮</button> --><button data-id="1" data-name="tom">按钮</button>
</view>

        找到cate.js文件,打印parentHandler此时的事件对象:

  parentHandler(event){// 点击蓝色区域(不点击按钮)// currentTarget 事件绑定者:view// target 事件触发者:view// currentTarget 和 target 都是指view,如果想获取 view 身上的数据,使用谁都可以console.log(event)}

2.1  点击蓝色区域(不点击按钮)

        currentTarget 事件绑定者:view

        target 事件触发者:view

        可以看到currentTarget 和 target 都是指view,如果想获取 view 身上的数据,使用谁都可以。

2.2  不点击蓝色区域(点击按钮)     

        currentTarget 事件绑定者:view

        target 事件触发者:按钮

  parentHandler(event){// 点击蓝色区域(不点击按钮)// currentTarget 事件绑定者:view// target 事件触发者:view// currentTarget 和 target 都是指view,如果想获取 view 身上的数据,使用谁都可以// 不点击蓝色区域(点击按钮)// currentTarget 事件绑定者:view// target 事件触发者:按钮// 如果想获取 view 身上的数据,就必须使用 currentTarget 才可以// 如果想获取的是时间触发者本身数据,就需要使用 targetconsole.log(event)}
}) 

        如果想获取 view 身上的数据,就必须使用 currentTarget 才可以。

        如果想获取的是时间触发者本身数据,就需要使用 target。

3.  注意事项

        若是事件连续单词组成,例如将“data-parentid”改为“data-parent-id”:

<view bind:tap="parentHandler" data-parent-id="1" data-parentname="tom"><!-- 如果需要进行事件传参,需要再组件上通过 data- 的方式进行传递数据 --><!-- <button bind:tap="btnHandler" data-id="1" data-name="tom">按钮</button> --><button data-id="1" data-name="tom">按钮</button>
</view>

        在传递参数时,如果自定义属性是多个单词,单词与单词直接使用中划线 - 进行连接,在事件对象中会被转换为小托峰写法。

         若是事件连续单词组成改成小托峰写法,例如将“data-parentname”改为“data-parentName”:


<view bind:tap="parentHandler" data-parent-id="1" data-parentName="tom"><!-- 如果需要进行事件传参,需要再组件上通过 data- 的方式进行传递数据 --><!-- <button bind:tap="btnHandler" data-id="1" data-name="tom">按钮</button> --><button data-id="1" data-name="tom">按钮</button>
</view>

         在传递参数时,如果自定义属性是多个单词,单词如果使用小托峰写法,在事件对象中会被转换为全部小写。

微信小程序开发_时光の尘的博客-CSDN博客

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

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

相关文章

Android14之解决编译报错:bazel: no such file or directory(一百八十九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

赢在起跑线:商品企划系统为鞋服品牌带来的竞争优势解析

在鞋服行业的激烈竞争中&#xff0c;每个品牌都渴望在市场中脱颖而出&#xff0c;而成功的起点往往在于商品企划的策略制定。商品企划系统作为一种先进的商业策略工具&#xff0c;能够帮助鞋服品牌赢在起跑线&#xff0c;获得竞争优势。本文将深入探讨商品企划系统如何为鞋服品…

计算机丢失msvcp140_1.dll怎样修复,分享五种有效的解决方法

当计算机系统中msvcp140_1.dll文件发生丢失时&#xff0c;可能会引发一系列运行问题&#xff0c;具体表现形式多种多样。首先&#xff0c;由于msvcp140_1.dll是Microsoft Visual C Redistributable Package的重要组成部分&#xff0c;它的缺失将直接影响到依赖这一库的各类应用…

Vue.js+SpringBoot开发计算机机房作业管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 登录注册模块2.2 课程管理模块2.3 课时管理模块2.4 学生作业模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 课程表3.2.2 课时表3.2.3 学生作业表 四、系统展示五、核心代码5.1 查询课程数据5.2 新增课时5.3 提交作…

01. Nginx入门-Nginx简介

Web基础知识 Web协议通信原理 Web协议通信过程 浏览器本身是一个客户端&#xff0c;当输入URL后&#xff0c;首先浏览器会请求DNS服务器&#xff0c;通过DNS获取相应的域名对应的IP。通过IP地址找到对应的服务器后&#xff0c;监理TCP连接。等浏览器发送完HTTP Request&…

UD效果广告

1.定义 全称Unidesk&#xff0c;是由阿里旗下大数据运营平台“阿里妈妈”推出的数字营销引流平台。UD投放将其他媒体的流量通过相关的广告创意导入到天猫店铺。 2.UD投放优化技巧 &#xff08;1&#xff09;不起量排查&#xff1a; 可以从账户问题、计划数量不足、计划设置…

OpenAI 3年前的AI音乐生成项目:Jukebox,效果比SunoAI v3还好

原来OpenAI 3年前就开始搞AI音乐生成了 效果甚至比最近发布的sunoAI v3还要好&#xff0c;难道OpenAI 想把这个隐藏大招练成无人能敌的状态才放出来再一次轰动全球&#xff1f; OpenAI在2019年8月份就推出了他们的一音乐生成模型&#xff1a;Jukebox Jukebox能够根据提供的歌…

消息队列-kafka-服务端处理架构(架构,Topic文件结构,服务端数据的一致性)

服务端处理架构 资料来源于网络 网络线程池&#xff1a; 接受请求&#xff0c;num.network.threads&#xff0c;默认为 3&#xff0c;专门处理客户的发送的请求。 IO 线程池&#xff1a; num.io.threads&#xff0c;默认为 8&#xff0c;专门处理业务请求。也就是它不负责发…

JetBrains TeamCity 身份验证绕过漏洞(CVE-2024-27198)

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

刷题DAY9 | LeetCode 28-实现 strStr() 459-重复的子字符串

28-实现 strStr()&#xff08;easy&#xff09; 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1 。 思路…

剑指offer--c++--n个骰子的点数

目录 题目&#xff1a; 题目分析&#xff1a; 最后编写代码&#xff1a; 输出结果 题目&#xff1a; 把n个骰子扔在地上&#xff0c;所有骰子朝上一面的点数之和为s。输入n&#xff0c;打印出s的所有可能的值出现的概率。 感谢大佬的帮助&#xff1a;https://www.cnblogs.c…

了解处理器

了解处理器 摘要写在前面1. 计算机简介1.1.计算机发展简史1.2.计算机分类1.3.PC机结构 2.初识处理器2.1.处理器的硬件模型2.2.处理器的编程模型2.3.处理器的分层模型2.4.如何选择处理器 3.指令集体系结构3.1.处理器编程模型3.2.指令集发展历程3.3.指令集分类3.4.汇编语言格式3.…

商业数据增长超88%!小红书热门内容解析,用户“打卡”新玩法

长久以来&#xff0c;“打卡”在社交媒体盛行&#xff0c;频频涌现新风潮&#xff0c;几乎覆盖美食、旅游、美妆等众多热门行业&#xff0c;今天吃了什么、玩了什么、做了什么&#xff1f;大众都喜欢通过打卡来分享。特别是小红书平台&#xff0c;打卡内容热度经久不衰&#xf…

13 丢弃法dropout【李沐动手学深度学习v2笔记】

1. 丢弃法 在层之间加入随机噪音 加入噪音的一些规则 加入噪音后不要改变期望 使用丢弃法 推理中的丢弃法 总结 2. 代码实现 4.6. 暂退法&#xff08;Dropouthttps://zh.d2l.ai/chapter_multilayer-perceptrons/dropout.html 2.1 Dropout import torch from torch import n…

Redis中的单线程高性能原因和其他高级命令

单线程 Redis是单线程吗&#xff1f; Redis的单线程主要是指Redis的网络IO和键值对读写是由一个线程来完成的&#xff0c;这也是 Redis对外提供键值存储的主要流程。但Redis的其他功能&#xff0c;比如持久化、异步删除、 集群数据同步等&#xff0c;其实是由额外的线程执行的…

小米澎湃和华为原生鸿蒙,那个更有发展前景?

小米的澎湃系统暂时不了解&#xff0c;但华为的鸿蒙系统值得一说。 就目前鸿蒙而言&#xff1b;24年初鸿蒙星河版面向开发者开放申请。其底座全线自研&#xff0c;去掉了传统的 Linux 内核以及 AOSP 安卓开放源代码项目等代码&#xff0c;仅支持鸿蒙内核和鸿蒙系统的应用。星河…

【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(一)-向量扩展编程模型

1. 引言 以下是《riscv-v-spec-1.0.pdf》文档的关键内容&#xff1a; 这是一份关于向量扩展的详细技术文档&#xff0c;内容覆盖了向量指令集的多个关键方面&#xff0c;如向量寄存器状态映射、向量指令格式、向量加载和存储操作、向量内存对齐约束、向量内存一致性模型、向量…

我的第②个出海工具站 - 2024年50个出海工具站计划

为了大家更好的使用各种出海工具。我上线了一版 出海工具导航 站点&#xff0c;经常使用的可以收藏下&#xff0c;我文内使用的网站都集成在了这里&#xff0c;非常使用。 随着AIGC的到来&#xff0c;2024年到了海外工具回暖的一年。今年计划上线50款出海工具站计划&#xff0c…

激光炸弹 刷题笔记

前置知识 二维前缀和 子矩阵的和 刷题笔记 {二维前缀和}-CSDN博客 思路 参考二维前缀和 将子矩阵的和 做成动态矩阵 一个个矩阵搜索 符合要求边长 矩阵中的元素和最大值 将x1,y1用i-k,j-k表示即可 x2,y2用i&#xff0c;j表示 代码 #include<iostream> #include<…

MongoDB获评2023年Gartner®云数据库管理系统“领导者”

MongoDB 很荣幸在《2023 年 Gartner 云数据库管理系统 (CDBMS) 魔力象限》报告中被评为领导者。我们相信这一成就让 MongoDB 成为唯一一家连续两年斩获“领导者”称号的纯应用程序数据库服务提供商。 社区及开发者数据平台用户的需求一向是 MongoDB 关注的重点&#xff0c;而这…