MorJS aPage/wPage eventListener 语法糖
针对 eventPlugin 插件上用到的高频用到的事件监听和取消监听,MorJS 拓展了语法,可以直接在 aPage
/ wPage
中直接使用。
$eventListener
会在Page
的onLoad
生命周期中进行事件的绑定,在onUnload
生命周期中进行事件的解绑,业务可以不用再去关心事件的解绑逻辑$eventListener
会在内部处理好this
对象,直接指向当前的实例,不需要业务去关心绑定,业务请勿在事件的回调函数中使用箭头函数,否则会导致this
对象异常$eventListener
是一个对象:key
是事件名,value
是事件的回调函数$eventListener
只针对需要多次监听的事件,对于只需要监听一次的,请参考event
插件的once
的用法
以下示例代码以常见的刷新页面数据为例,其中 refreshPage 是事件名
import { aPage } from '@morjs/core'
aPage({
// 会自动做事件的绑定和解绑
$eventListener: {
// refreshPage是监听的事件名
refreshPage: function (storeId) {
console.log('in page $eventListener refreshPage', storeId)
}
}
})
触发代码示例:
import { aPage } from '@morjs/core'
aPage({
data: {
storeId: '123'
},
onStoreChange: function () {
// 调用方依然只需要根据$event插件的方式,直接调用即可
getApp().$event.emit('refreshPage', this.data.storeId)
}
})