There will be tutorials on this for the next release.
For views, it is best to put all required classes that that view uses in the requires array property.
Code:
Ext.define('MyView', {
....
requires : [
'Ext.TitleBar',
'Ext.dataview.List'
],
....
});
It can be any class, not just other view components.
For controllers, you should specify your controlleres in your Ext.application:
Code:
Ext.application({
....
controllers : [ 'Main' ]
....
});
It will interate through that and prepend the name of your app (<name>) and controller: <name>.controller.Main. You can do the same with model, stores, and views
Within a controller you can specify the models, stores, and views array:
Code:
Ext.define('MyContoller', {
....
models : [ 'User' ],
stores : [ 'Users' ],
views : [ 'Users' ]
....
});
Just like in Ext.application, it will prepend <name>.model, <name>.store, <name>.view to those classes depending which property it is in.
You can use the requires in Ext.application, any of your controllers, models, stores, and views. The class you are extending (or overriding) will automatically be required.
If you need things loaded upfront, you can use Ext.require and pass in a class name string or an array of class name strings. One thing to note is the path for your Ext.application is not entered so if you Ext.require a class that stems from your application's name, the path will be unresolvable.