当前位置: 首页 > news >正文

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

目录

步骤一:按钮的创建

步骤二:按钮属性配置

步骤三:添加点击事件

步骤四:参数传递

步骤五:打印数据

步骤六:获取数据

步骤七:父进程验证

总结:data-*自定义数据和mark-自定义数据的区别


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

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

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

零基础手把手教你创建微信小程序(十六)·事件传参·data-*自定义数据-CSDN博客

        本章我们讲解另一种方法,小程序进行事件传参的时候,除了使用 data-* 属性传递参数外,还可以使用 mark 标记传递参数mark是一种自定义属性,可以在组件上添加,用于来识别具体触发事件的target节点。

        同时mark还可以用于承载一些自定义数据在组件上使用 mark:自定义属性 的方式将数据传递给事件处理函数。

        例如: <view mark:id="100" bindtap="handler"/>然后通过事件对象进行获取自定义数据

步骤一:按钮的创建

        找到购物车页面,找到其文件路径,快速找到cart.wxml文件,编写代码,创建一个按钮:


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

步骤二:按钮属性配置

        找打上一配置的cate.scss文件将其中的内容复制粘贴到cart.scss文件中,配置按钮相关属性:

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

步骤三:添加点击事件

        在cart.wxml文件中创建一个名为“bluHandler”的点击事件:


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

步骤四:参数传递

        如果需要使用 mark 进行事件传参,如果需要使用 mark:自定义属性的方式进行参数传递:


<view><!-- 如果需要使用 mark 进行事件传参,如果需要使用 mark:自定义属性的方式进行参数传递 --><button bind:tap="btuHandler" mark:id="1" mark:name="tom">按钮</button>
</view>

步骤五:打印数据

        找到cart.js文件,对按钮绑定事件进行处理:


Page({// 按钮绑定的事件处理函数btuHandler(event){console.log(event)}
})

步骤六:获取数据


Page({// 按钮绑定的事件处理函数btuHandler(event){console.log(event.mark.id)console.log(event.mark.name)}
})

步骤七:父进程验证

        找到cart.wxml对view添加事件:


<view bind:tap="parentHandler" mark:parentid="1" mark:parentname="tom"><!-- 如果需要使用 mark 进行事件传参,如果需要使用 mark:自定义属性的方式进行参数传递 --><!-- <button bind:tap="btuHandler" mark:id="1" mark:name="tom">按钮</button> --><button mark:id="1" mark:name="tom">按钮</button>
</view>

        在找到cart.js文件,对view创建的事件,读取:

        首先点击蓝色区域(不点击按钮):


Page({// 按钮绑定的事件处理函数btuHandler(event){console.log(event.mark.id)console.log(event.mark.name)},//view 绑定的事件处理函数parentHandler(event){//先点击蓝色区域// 通过事件对象获取的是 view 身上绑定的数据console.log(event)}
})

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


Page({// 按钮绑定的事件处理函数btuHandler(event){console.log(event.mark.id)console.log(event.mark.name)},//view 绑定的事件处理函数parentHandler(event){//先点击蓝色区域// 通过事件对象获取的是 view 身上绑定的数据// 先点击按钮(不点击蓝色区域)console.log(event)}
})

总结:data-*自定义数据和mark-自定义数据的区别

对于 data-*自定义数据:

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

        currentTarget 事件绑定者:view

        target 事件触发者:view

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

        currentTarget 事件绑定者:view

        target 事件触发者:按钮


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

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

对于 mark-自定义数据:

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

        通过事件对象获取的是 view 身上绑定的数据

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

通过事件对象获取到的是 触发事件的节点 以及父节点身上的所有 mark 数据

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

相关文章:

  • 使用插件vue-seamless-scroll 完成内容持续动态
  • leetcode热题100刷题计划
  • Dgraph 入门教程四(开发环境的搭建)
  • 力扣面试经典150 —— 6-10题
  • python异常机制
  • YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information
  • 骨传导耳机怎么挑选?资深测评师一文教你搞定怎么选!
  • 外包干了8天,技术退步明显。。。。。
  • 网络编程套接字(2)——Socket套接字
  • IP传输方式——组播
  • #14vue3生成表单并跳转到外部地址的方式
  • 数据结构从入门到精通——链表
  • centos7 python3.12.1 报错 No module named _ssl
  • 【2024.03.05】定时执行专家 V7.1 发布 - TimingExecutor V7.1 Release
  • UE4 Niagara 关卡3.4官方案例解析
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • canvas 绘制双线技巧
  • co模块的前端实现
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • JAVA SE 6 GC调优笔记
  • Redis在Web项目中的应用与实践
  • Spring Cloud Feign的两种使用姿势
  • 阿里云Kubernetes容器服务上体验Knative
  • 大主子表关联的性能优化方法
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 看域名解析域名安全对SEO的影响
  • 算法系列——算法入门之递归分而治之思想的实现
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 怎么把视频里的音乐提取出来
  • 智能网联汽车信息安全
  • 阿里云ACE认证学习知识点梳理
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • #stm32驱动外设模块总结w5500模块
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (七)Java对象在Hibernate持久化层的状态
  • (三)mysql_MYSQL(三)
  • (转)http-server应用
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET Core 项目指定SDK版本
  • .NET MVC之AOP
  • .Net 垃圾回收机制原理(二)
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .NET企业级应用架构设计系列之技术选型
  • .Net中的集合
  • @ModelAttribute 注解
  • @test注解_Spring 自定义注解你了解过吗?
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • []我的函数库