当一个小部件需要用功能来装饰时(可能需要几个不同的小部件),我已经更倾向于使用 mixin 方法。
例如,对于一个自定义的小部件库,我可以看到一些 mixin: - L10n 支持(例如,通过提供像 f10Callback() 这样的直接函数来覆盖某些键,例如 F10,使其变得微不足道) - 自定义主题支持(比如为跨越许多不同小部件的特定领域情况添加某些 css 类)
我有点喜欢在小部件上添加一个 mixin 的想法,对我来说,这似乎只是在执行 mixin 的小部件的小部件生命周期之后添加函数和属性。
一些问题: - 我是否过度使用了这个 mixin 的想法?- 你如何防止 mixins 被多次应用到同一个小部件(比如当你扩展的模块已经有 mixins 时)?- mixin 是否应该保持状态?- mixin 应该如何暴露功能?通过提供他们的小部件需要覆盖的功能?还是更多的发布/订阅方法?
真的只是在寻找有关 dojo mixins 的一般建议。