首页 > 编程语言 >微信小程序-事件传递数据

微信小程序-事件传递数据

时间:2023-04-22 13:11:17浏览次数:40  
标签:微信 程序 dataset currentTarget 传递数据 mark event 事件

事件对象

小程序在触发事件监听方法的时候会自动传递一个事件对象给我们,通过这个事件对象我们可以拿到页面传递过来的一些数据。

事件对象的作用

  • 拿到触发事件的元素: currentTarget
  • 拿到触发事件的位置: detail
  • 拿到从页面传递过来的数据: dataset/mark

微信小程序-事件传递数据_微信小程序

页面传递数据的方法

  • dataset
  • mark

通过 dataset 传递数据:

官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/event.html#dataset

在 WXML 中,这些自定义数据以 data- 开头,多个单词由连字符 - 连接。这种写法中,连字符写法会转换成驼峰写法,而大写字符会自动转成小写字符。如:

  • data-element-type ,最终会呈现为 event.currentTarget.dataset.elementType
  • data-elementType ,最终会呈现为 event.currentTarget.dataset.elementtype

dataset 示例:

index.wxml:

<view data-name="BNTang" bind:tap="oneTap">我是view</view>

index.js:

oneTap: function(event){
  console.log('oneTap', event);
  console.log(event.currentTarget.dataset.name);
},

小程序会自动将页面中data-xxx的数据放到事件对象的currentTarget的dataset中。

mark 示例:

index.wxml:

<view mark:name="BNTang" bind:tap="oneTap">我是view</view>

index.js:

oneTap: function(event){
  console.log('oneTap', event);
  console.log(event.mark.name);
},

小程序会自动将页面中mark:xxx的数据放到事件对象的mark属性中。

遗留问题:为什么要有两种传递数据的方式?

!> 涉及到事件冒泡和捕获/涉及到嵌套结构/涉及到currentTarget



标签:微信,程序,dataset,currentTarget,传递数据,mark,event,事件
From: https://blog.51cto.com/u_15652665/6215225

相关文章

  • stata 程序写法 静态运行写法
    programmysum,rclasssyntaxvarnamereturnlocalvarname`varlist'tempvarnewquietly{countif!missing(`varlist')returnscalar......
  • 用 python 上传文件到微信小程序云存储
    前言小程序上了云托管后不打算继续使用其他图床,而是使用云托管自带的图床。而由于时间紧迫只能在本地使用云托管提供的服务器调用对象存储api云托管上传文件的文档在这里上传文件文档如果你上传带有中文名的文件,或者上传的路径有中文名时,需要修改一下requests库的源码,否......
  • 微信小程序:uni-app页面Page和组件Component生命周期执行的先后顺序
    目录H5微信小程序测试代码文档页面生命周期https://uniapp.dcloud.net.cn/tutorial/page.html#lifecycle组件生命周期https://uniapp.dcloud.net.cn/tutorial/page.html#componentlifecycle经测试,得出结论:H5和微信小程序的生命周期函数调用顺序不一致H5pagebeforeCreatepag......
  • #yyds干货盘点# LeetCode程序员面试金典:最长有效括号
    题目:给你一个只包含'(' 和')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 示例1:输入:s="(()"输出:2解释:最长有效括号子串是"()"示例2:输入:s=")()())"输出:4解释:最长有效括号子串是"()()"示例3:输入:s=""输出:0代码实现:classSolution{publicint......
  • 程序员面试金典---12
    递归乘法直接上代码:/***@param{number}A*@param{number}B*@return{number}*/varmultiply=function(A,B){if(A===0||B===0)return0arr=[0]for(leti=1;i<=B;i++){arr[i]=arr[i-1]+A}returnarr[B......
  • 程序员修炼之道阅读笔记
    第19节文本操纵1、学习一种文本操纵语言。文本操作语言对于编程的意义,就像是刳刨机对于木工活的意义。2、文本操作的案例。我们的测试数据有好几万条,散落在不同文件,如果需要进行合并并转换为特定格式,手动处理是无法想象的。但如果使用Perl几个小时就可以完成。数据库sche......
  • 青岛市程序设计竞赛冲刺①
    2021年青岛市小学组第三题原题: 解题代码:#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>usingnamespacestd;constintN=5e2+5,dx[4]={0,0,-1,1},dy[4]={1,-1,0,0};intn,m,vis[N][N],ans=0;charc......
  • Cobra 快速入门 - 专为命令行程序而生
    最近一直在看 Istio(一个 ServiceMesh 框架)相关的东西,当看到其源码时发现了一个新东西 Cobra,一查却发现这是个好东西,用的地方可不少,比如:Docker、Kubernetes 等都有它的身影存在。为了更好的了解这些开源框架(如,Istio、Kubernetes 等),势必需要对 Cobra 做一个详细的了解,后续可......
  • 程序与指令
     由于.o文件还未进行链接,所以其地址是不确定的,所以代码从地址0开始 可执行文件其代码的开始地址是虚拟地址 《IA-32的ISA》所以可知道IA-32是一个32位的指令系统《IA-32体系结构》   在这里我们要知道AI-32其有8个8位寄存器,8个16位寄存器,8个......
  • 五个 Go 高级程序员时刻关注的问题 —— 你也在考虑吗?
    作为Go程序员,很容易陷入编写代码和解决问题的日常任务中。那么有经验的Go开发者在编写代码时会考虑哪些因素?他们在这方面积累了哪些经验教训?在本文中,我们将深入了解有经验的Go开发者的思维方式,看看他们真正在思考什么。让我们开始吧。1.规范为了促进代码库的一致性、......