WeChat ミニ プログラム イベント チャネル (イベント バス) は、イベントをトリガーすることによって、ミニ プログラムの複数のページまたはコンポーネント間で通信するためのメカニズムです。
イベント チャネルを通じて、ページまたはコンポーネントはイベント チャネルにイベントを送信でき、他のページまたはコンポーネントはイベントをリッスンしてメッセージを取得し、それに応じて処理できます。
イベント チャネルを使用するには、まず app.js でイベント バスを初期化する必要があります。
App({
onLaunch() {
this.eventChannel = this.getEventChannelForPage();
},
})
イベントを送信する必要があるページまたはコンポーネントで、wx.navigateTo メソッドまたは wx.redirectTo メソッドを通じてターゲットのページまたはコンポーネントにジャンプするときに、 events パラメータを渡してイベント チャネル オブジェクトに割り当てます。
wx.navigateTo({
url: '/pages/targetPage/index',
events: {
someEvent: data => {
// 收到事件,并执行相应操作
}
}
});
ターゲット ページまたはコンポーネントで、onLoad ライフサイクル関数を通じてイベント チャネル オブジェクトを取得し、イベント処理関数をバインドします。
onLoad(options) {
const eventChannel = this.getOpenerEventChannel();
eventChannel.on('someEvent', data => {
// 处理事件
});
}
イベントが発生すると、イベントをトリガーしたメソッドを呼び出すことによって、イベントがイベント チャネルに送信されます。
// 触发事件
this.eventChannel.emit('someEvent', data);
イベント チャネルを使用する場合、解析できないデータ形式または型エラーを避けるために、渡されるデータ型はアプレットのデータ形式要件を満たしている必要があることに注意してください。同時に、イベント チャネルでは、開発者が保守および管理しやすいように、イベント名として定数または文字列を使用することをお勧めします。