2011-09-04 83 views
14

我们假设我已经定义了几个新组件 - MyComponent1MyComponent2,...,它们扩展了Ext.Component。我想添加close按钮,它会出现在MyComponentX.el的右上角位置。mixin vs插件。可以选择什么?

我应该使用什么:mixinplugin?或者是其他东西?
一般来说:mixin vs plugin,最佳做法是什么?

+1

Mixin是继承,但插件是组合。 – 2013-08-20 09:58:38

回答

17

我喜欢去想它 -

mixin是你用什么来实现“多的传承”
plugin是你用什么来增强现有组件。插件的生命周期由组件管理。 (对mixin没有生命周期管理,认为mixin是基类的等价物)

+0

谢谢你的回答。那么,您认为哪个是我的关闭按钮示例的最佳选择? –

+3

我懂了。最好的选择是'plugin',因为我想'增强现有组件'。再次感谢。 –

+0

另外,由于OP询问了一般情况,您只能在Ext.Component上使用插件 –

14

Mixin属性和函数直接注入到类中,因此它们是类定义的一部分。

插件是在实例级别

1

插件加入将功能添加到Ext.Component类或扩展Ext.Component类。 插件中任何方法的作用域都在插件本身中。

Mixins可用于添加功能到任何其他类。 mixins方法将直接进入课堂。