V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Felldeadbird
V2EX  ›  微信

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

  •  
  •   Felldeadbird · 2020-09-07 12:27:49 +08:00 · 991 次点击
    这是一个创建于 1538 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    2 条回复    2020-09-08 14:37:24 +08:00
    jswxg
        1
    jswxg  
       2020-09-07 14:04:21 +08:00   ❤️ 2
    event.js
    function repeatEvent(){
    //dosomthing
    }
    module.exports.repeatEvent = repeatEvent

    小程序代码中:
    const mymod = require('event.js')
    mymod.repeatEvent()
    Felldeadbird
        2
    Felldeadbird  
    OP
       2020-09-08 14:37:24 +08:00
    @jswxg 我今天把 复用的东西 调用到组件去了。
    组件绑定重复事件就可以了。
    然后再基于 getCurrentPages() ,去读取对应页中的 data 数据
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2434 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 02:23 · PVG 10:23 · LAX 18:23 · JFK 21:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.