微信小程序----组件事件通信

组件间通信与事件
组件间的基本通信方式有以下几种。

WXML 数据绑定:用于父组件向子组件的指定属性设置数据,仅能设置 JSON 兼容数据(自基础库版本 2.0.9 开始,还可以在数据中包含函数)。
事件:用于子组件向父组件传递数据,可以传递任意数据。
如果以上两种方式不足以满足需要,父组件还可以通过 this.selectComponent 方法获取子组件实例对象,这样就可以直接访问组件的任意数据和方法。

WXML 数据绑定

在这里插入图片描述

监听事件

事件系统是组件间通信的主要方式之一。自定义组件可以触发任意的事件,引用组件的页面可以监听这些事件。关于事件的基本概念和用法。
自定义组件触发事件时,需要使用 triggerEvent 方法,指定事件名、detail对象和事件选项:

代码示例:
<!-- 组件 index.wxml  -->
<!-- 当自定义组件触发“myevent”事件时,调用“onMyEvent”方法 -->
<custom-component bindmyevent="onMyEvent" />
<!-- 或者可以写成 -->
<custom-component bind:myevent="onMyEvent" />

<!-- 组件 custom-component.wxml -->
  <button bindtap="onTap">点击这个按钮将触发一系列事件</button>
<!-- 组件 custom-component.js -->
Component({
methods: {
    onTap: function () {
      this.triggerEvent('myevent', {item:4}) // 只会触发
    }
  }
})
<!-- 组件 index.js -->
Page({
  onMyEvent: function(e){
    e.detail // 自定义组件触发事件时提供的detail对象 {item:4}
  }
})

在这里插入图片描述

this.selectComponent

获取子组件实例对象,这样就可以直接访问组件的任意数据和方法。
在这里插入图片描述

posted @ 2022-03-03 08:42  Cupid05  阅读(359)  评论(0)    收藏  举报