當一個小部件需要使用功能進行修飾(可能需要多個不同的小部件)時,我一直在朝着mixin方法邁進。例如,對於一個自定義的小部件庫,我可以看到一些mixin的存在: -L10n支持(例如,通過提供直接功能來覆蓋像f10Callback()),使得捕獲F10等特定鍵時變得很微不足道) - 自定義主題支持(如爲特定領域的情況添加某些CSS類,跨越很多不同的小部件)Dojo 1.9 mixin方法
我有點喜歡把一個mixin放在一個小部件上,這對我來說似乎只是簡單地添加函數以及正在執行mixin的小部件的小部件生命週期之後的屬性。
一些問題: - 我是否過度使用這個mixin的想法? - 如何防止mixin被多次應用到同一個小部件(例如,當你正在擴展的模塊已經有mixin時)? - mixin應該保持狀態嗎? - mixin的公開功能應該如何?通過提供他們的小部件需要覆蓋的函數?或者更多的酒吧/次級方法?
真的只是尋找與dojo mixins一般的意見。