- 基于发布订阅模式的小程序页面通信机制,降低页面耦合度
- 类似 Vue 的 api
在 app.js 中引入该模块,将实例挂在 app 下
//app.js
const WeEvent = require('./utils/we-event.js')
App({
// ...
event: new WeEvent(),
// ...
})在页面中获取 app 对象,即拿到 event 事件对象
使用emit 派发事件
const app = getApp()
Page({
// ...
someMethod() {
app.event.emit('some-event', arg)
},
// ...
})使用 on 订阅事件,注意在 onUnload 中移除事件监听
const app = getApp()
Page({
onLoad() {
app.event.on('some-event', this.updateState, this)
},
onUnload() {
app.event.off('some-event', this.updateState)
},
updateState(arg) {
// ...
},
})- event.on(event, callback, context)
{sting} event{Function} callback{object} context为当前页面page对象,传this即可
- event.off([event, callback])
{string} event{Function} callback
- event.emit(event, [...args])
{string} event{arguments list} [...args]
该模块使用了ES6语法,需配置环境支持