2011-09-04 2 views
14

몇 가지 새로운 구성 요소 - MyComponent1, MyComponent2, ...을 정의했다고 가정하고, Ext.Component을 확장합니다.mixin 대 플러그인. 무엇을 선택해야합니까?

이제 위젯을 동일한 기능으로 확장하려고합니다. MyComponentX.el의 오른쪽 상단에 나타나는 close 버튼을 추가하고 싶습니다.

무엇을 사용해야합니까? mixin? plugin? 또는 다른 것?
그리고 일반적으로 : mixin vs plugin, 가장 좋은 방법은 무엇입니까?

mixin 당신이
plugin는 기존 구성 요소를 향상시키기 위해 사용하는 것입니다 '다중 상속'을 달성하기 위해 무엇을 사용 -

+1

Mixin은 상속되지만 플러그인은 구성입니다. –

답변

17

나는 그것을 생각하고 싶다. 플러그인의 수명주기는 구성 요소에 의해 관리됩니다. Mixin 속성과 함수는 클래스 정의에 포함될 수 있도록 직접 클래스에 삽입됩니다. (Mixin의 라이프 사이클 관리자는 mixin을 기본 클래스로 간주합니다.)

+0

답변 해 주셔서 감사합니다. 그렇다면 닫기 버튼 예제의 가장 좋은 선택은 무엇이라고 생각하십니까? –

+3

알아 냈어. 가장 좋은 선택은'기존 컴포넌트를 향상시키고 싶다 '는'플러그인'일 것입니다. 고마워, 또. –

+0

또한 OP는 일반적으로 약 질문했기 때문에 Ext.Component's에서만 플러그인을 사용할 수 있습니다 –

14

Mixin 속성과 함수는 클래스 정의에 포함되도록 직접 클래스에 삽입됩니다.

플러그인은 Ext.Component의 클래스 또는 Ext.Component의 연장 클래스에 기능을 추가 할 인스턴스 레벨

1

플러그인 첨가된다. 플러그인에있는 메소드의 범위는 플러그인 자체에 있습니다.

믹스은 다른 클래스에 기능을 추가하는 데 사용할 수 있습니다. mixins 메서드는 클래스에 직접 사용할 수 있습니다.

관련 문제