Mixin vs plugin. Что выбрать?
Предположим, что я определил несколько новых компонентов - MyComponent1
, MyComponent2
,..., которые расширяют Ext.Component
.
Теперь я хочу расширить все эти виджеты с той же функциональностью - я хочу добавить кнопку close
, которая появится в верхнем правом положении MyComponentX.el
.
Что мне следует использовать: mixin
? plugin
? или что-то еще?
И вообще: mixin vs plugin
, что такое лучшая практика?
Ответы
Ответ 1
Мне нравится думать об этом как -
mixin
- это то, что вы используете для достижения "множественного наследования",
plugin
- это то, что вы используете для улучшения существующего компонента. жизненный цикл плагина управляется компонентом. (нет управления жизненным циклом для mixin. подумайте о mixin как эквиваленте базового класса)
Ответ 2
Свойства и функции Mixin вводятся непосредственно в класс, поэтому они являются частью определения класса.
добавляются плагины на уровне экземпляра
Ответ 3
Плагины добавят функциональность в класс Ext.Component или класс, расширяющий Ext.Component.
Объем любого метода в плагине находится в самом плагине.
Mixins может использоваться для добавления функциональности в любой другой класс.
Методы mixins будут доступны непосредственно в классе.