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