Большая разница в том, что config ленив. Ленивый означает, что пока вы не используете компонент, код не будет выполняться, анализироваться или даже отображаться.
Лучший способ (имхо)
// hack example
Ext.create('Ext.Viewport', {
layout: 'fit',
items: [ {
xtype : 'panel',
...
} ],
...
});
// real world example
Ext.define('MyViewport', {
extend : 'Ext.Viewport',
layout: 'fit',
items: [ {
xtype : 'panel',
...
} ],
...
});
myviewport = Ext.create('MyViewport');
Однако удобнее использовать что-то подобное для архивирования большей гибкости и возможности повторного использования.
Ext.define('MyViewport', {
extend : 'Ext.Viewport',
layout: 'fit',
initComponent : function(){
this.items = this.buildItems();
this.callParent();
},
buildItems: function() {
return [ {
xtype : 'panel',
...
} ];
},
...
});
myviewport = Ext.create('MyViewport');