微信小程序的事件绑定,有更优雅的复用方式吗?

2020-09-07 12:27:49 +08:00
 Felldeadbird

最近在写小程序,我发现这么一个问题,事件绑定貌似没有优雅的复用方法去实现。

我现在有 10 个 page 。共有一个元素,bindtap 绑定了一个事件: repeatEvent(){}

刚开始,为了业务开发进度,我 10 个页面都写了 repeatEvent 。后来,某写原因 repeatEvent 里面的业务逻辑进行调整。那一刻我就要改 10 个 repeatEvent 。 于是乎我就一次性将他的业务逻辑 改为 外部函数。

repeatEvent(){ ... e.externalFunc(param1, param2, ..) ... } 改好 10 个页面。业务逻辑封装起了,后续只需要修改封装的函数就可以了,不过感觉太落后的写法了。

所以问题就是,我有什么办法,不在 10 个页面都写 repeatEvent 。 类似其他语言的继承。子类没有方法,就找父类……

942 次点击
所在节点    微信
2 条回复
jswxg
2020-09-07 14:04:21 +08:00
event.js
function repeatEvent(){
//dosomthing
}
module.exports.repeatEvent = repeatEvent

小程序代码中:
const mymod = require('event.js')
mymod.repeatEvent()
Felldeadbird
2020-09-08 14:37:24 +08:00
@jswxg 我今天把 复用的东西 调用到组件去了。
组件绑定重复事件就可以了。
然后再基于 getCurrentPages() ,去读取对应页中的 data 数据

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/704819

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX