Вы можете использовать то, что я называю шаблоном модуля js. Если вы знаете, что группы классов часто используются вместе, вы можете сделать что-то вроде этого.
Сначала вы определяете каждый класс в отдельном файле, а затем определяете модуль для их объединения
Module.js
define([
'./models/FirstModel',
'./models/SecondModel',
'./views/FirstView',
'./views/SecondView',
'txt!./templates/template.tpl'
], function(FirstModel, SecondModel, FirstView, SecondView, template) {
return {
FirstModel: FirstModel,
SecondModel: SecondModel,
FirstView: FirstView,
SecondView: SecondView,
template: template
}
});
А потом, когда вы хотите использовать класс из этого модуля, вы просто делаете
define(['./Module'], function(Module) {
var AView = Module.FirstView.extend({
model: Module.FirstModel,
render: function() {
this.html(_.template(Module.template)(this.model.attributes));
if (something) {
this.$el.append(new Module.SecondView().render().el);
}
}
})
return AView;
});
Я не верю, что используя модули, определенные с requirejs, мы должны возвращать экземпляр - мы всегда должны возвращать конструктор или объект.
Вы должны полностью принять определяющее и требующее - со временем вы начнете любить его - не нужно много думать о добавлении / отслеживании зависимостей и т. Д. Везде вручную или (так что 2005!), Имея большую часть материала в одном файл:)