还可以使用mitt.js通过消息订阅的方式来实现。
在util新建文件mitt.js
function mitt(all) {
all = all || Object.create(null);
return {
on(type, handler) {
(all[type] || (all[type] = [])).push(handler);
},
off(type, handler) {
if (all[type]) {
all[type].splice(all[type].indexOf(handler) >>> 0, 1);
}
},
emit(type, evt) {
(all[type] || []).slice().map((handler) => {
handler(evt);
});
(all['*'] || []).slice().map((handler) => {
handler(type, evt);
});
}
};
}
module.exports = {
mitt: mitt
}app.js的代码增加:
const mitt = require('./utils/mitt').mitt
App({
onLaunch: function () {
let that = this
that.globalData.bus = mitt()
//调用page里的_custommethod
that.globalData.bus.emit('_custommethod', data)
}
})page里的代码增加const app = getApp()
Page({
custommethod: function(data){
},
onShow: function () {
let that = this
app.globalData.bus.on('_custommethod', that.custommethod)
},
onHide: function () {
let that = this
app.globalData.bus.off('_custommethod', that.custommethod)
},
})
网友回复
webgl与webgpu有啥不同?
Zero Trust的Tunnels怎么设置泛域名解析及http服务获取当前访问域名?
Spec Coding(规范驱动编码)和 Vibe Coding(氛围编程)有啥区别?
如何在国内服务器上正常运行未备案的域名网站?
Cloudflared 和WARP Connector有啥不同?
有没有让本地开源大模型越狱的方法或插件啥的?
如何使用Zero Trust的Tunnels技术将局域网电脑web服务可以公网访问呢?
编程领域ai大模型的排名是怎么样的?
如何修改别人发给我的微信笔记内容?
fbx、obj、glb三维格式模型如何在浏览器中通过three相互转换格式?


