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

微信小程序之bind和catch

这两个呢,都是绑定事件用的,具体使用有些小区别。

官方文档:

  • 事件冒泡处理不同
    • bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了bindtap点击事件,当点击子视图时,不仅子视图的点击事件处理函数会执行,其父视图中绑定的bindtap事件处理函数也会执行,前提是父视图也绑定了该事件。
    • catch:绑定的事件不会向上冒泡,触发当前组件的事件后,事件传播会停止。比如,在一个父子视图结构中,子视图使用catchtap绑定点击事件,当点击子视图时,只有子视图的点击事件处理函数会执行,父视图中绑定的bindtapcatchtap事件处理函数都不会执行。

有点类似于消息传递。

具体我们来测试感受一下:

先做三个按钮(wxml):

<view class="content" bind:tap="parentTap"><text bind:tap="childTap">bind测试</text></view><view class="content" bind:tap="parentTap"><text catch:tap="childTap">catch测试</text></view><view class="content" bind:tap="parentTap"><text>只有父窗口有响应</text></view>

 然后在事件处理函数中打印一下log:

parentTap() {console.log("父组件点击");},childTap() {console.log("子组件点击");}

涉及的css布局:

.content{width: 300rpx;height: 80rpx;line-height: 80rpx;font-size: 28rpx;text-align: center;border: 1rpx solid #333;border-radius: 10rpx;
}

最后是这样的:

然后我们分别点击,看效果:

点击bind测试按钮,终端会打印2次:

说明什么,儿子有儿子的处理方法,老子有老子的处理方法。

点击catch测试按钮,终端会打印1次: 

说明什么:这点小事,我来处理就行了,不用告诉老子了。

点击最后一个按钮,终端打印:

 

说明什么,儿子惹的祸,他不管,老子还得管上。

小知识,知道就好,反正我到现在还没用到。 

相关文章:

  • Qt5 框架 CMake 探秘
  • C++11 花括号等式初始化器(Brace-or-Equal Initializers):从入门到精通
  • 顺应智能化建筑趋势,IBMS管理平台应用前景无限延伸
  • DMA:在不同内存空间建立目的地址的情况分析及后果
  • 服务器内存能不能用在台式机上
  • 网格布局示例代码解析
  • VSCode中PHP使用Xdebug
  • Easy系列PLC变频器控制功能块(ST源代码)
  • VsCode 离线插件下载
  • (1-6-5)Java 多线程(定长线程池)下载器(案例)
  • React 中的TypeScript开发范式
  • ubuntu桌面x11异常修复
  • 上位机开发过程中的设计模式体会(2):观察者模式和Qt信号槽机制
  • ubuntu + nginx 1.26 + php7.4 + mysql8.0 调优
  • 机器学习中的优化问题描述
  • Python列表:高效灵活的数据存储与操作指南
  • 讲讲JVM的垃圾回收机制
  • 基于大模型的输尿管下段结石诊疗全流程预测与方案研究
  • 项目课题——智能花盆系统设计
  • 核心机制:面向字节流
  • 网站可以做二维码导航/关键词优化是什么意思?
  • 广州做营销型网站建设/做seo需要用到什么软件
  • 网站排名优化工具/百度如何优化
  • 网站建设设计主要系统/企业推广平台有哪些
  • 做自媒体与做网站/微信指数官网
  • 网站建设找金手指排名/电脑优化