docs extjs4 extjs

extjs4 - docs - extjs 4 panel



initComponent vs constructor al definir un objeto (1)

constructor es un estándar de POO para inicializar instancias de objetos y está disponible en todas las clases de ExtJS (todo lo creado por Ext.define ).

initComponent es la extensión ExtJS para inicializar componentes: clases que extienden Ext.Component . Utiliza un patrón de método con plantilla y habilita algunos pasos de inicialización estándar antes y después de su componente personalizado init. Algo como esto:

Ext.Component.constructor() { - init events - apply config - create plugins - ... - your custom component initialization (initComponent) - ... - init plugins - etc. }

Mis mejores prácticas son usar initComponent cuando estoy creando componentes y constructor solo para clases genéricas.

¿Cuándo debo usar initComponent comparación con el constructor ?

He estado usando initComponent para extender mis objetos, pero mirar los documentos para Ext.define es verlos usando el constructor por todas partes y luego colocarlos. ¿cuál es la diferencia?

comparar:

Ext.define(''My.app.PanelPart2'', { extend: ''My.app.Panel'', constructor: function (config) { this.callSuper(arguments); // calls My.app.Panel''s constructor //... } });

a

Ext.define(''My.app.PanelPart2'', { extend: ''My.app.Panel'', initComponent: function (config) { Ext.apply(this, config); this.callParent(arguments); } });

Soy consciente del hecho de que algunos componentes no se inician (Im te mira Ext.data.Store ), lo que me lleva a inclinarme hacia escribir más sobre el constructor, ya que debería ser universal.