Я довольно новичок в Extjs, и, пройдя несколько учебных пособий и блогов на шаблоне Extjs MVC, я не понимаю, как сложное приложение (например, 10-15-страничная навигация) может строиться на платформе extjs.Как контроллеры используются с MVC в приложении Extjs
На форумах sencha предлагается, чтобы все контроллеры должны были быть определены заранее в app.js (потому что контроллеры загрузки перед раздачей не будут попадать в производительность по сравнению с пользовательским интерфейсом, который загружает DOM. Обратите внимание, что это было упомянуто администратором форума Sencha).
Идя выше подхода, у меня есть несколько вопросов:
когда же контроллер получить экземпляры? Все они загружены и установлены, когда приложение загружается и продолжает слушать события, определенные в них, до срока службы приложения?
Что означает определение моделей [], магазинов [] и Views [] в классе контроллера? Когда они загружаются и создаются?
Как работает навигационная система с контроллерами? Если переход на новую страницу просто переводится в getParentContainer.remove (componentX) и getParentContainer.add (componentY), то целью контроллеров является просто файл для обработки событий?
Есть ли возможность (уничтожение уничтожения) с контроллерами? Если не так, как можно создать и уничтожить несколько экземпляров, чтобы мои действия не прослушивались неправильным экземпляром (я видел некоторые блоги, в которых упоминаются контроллеры, в основном одноэлементные)?
Может ли кто-нибудь пролить свет на это? Любые примеры/иллюстрации будут очень полезны.
Благодаря
Большое спасибо за ваши комментарии. Это объясняет большинство моих вопросов. Я разрабатываю приложение с помощью Extjs 5. Итак, начинаем с ext5, имеет ли смысл использовать только Ext.app.ViewControllers для всех контроллеров общего назначения? и есть один Ext.app.Controller (который является глобальным и всегда живым) для обработки глобальных событий, таких как маршрутизация? – optimusPrime
В общем, я считаю, что это хороший подход. В Ext JS 4 большая часть материала, выполняемого в контроллерах, обрабатывала события просмотра, которые, безусловно, являются областью просмотра ViewController. Я все еще разорван на лучший способ сделать маршрутизацию ... в 4, я разработал свой собственный, который позволил мне определить маршруты в контроллерах, которые сохраняли его очень чистым и сегментированным. В 5, конечно, вы не можете сделать это по-видимому в ViewControllers, поскольку они могут не существовать, чтобы обрабатывать маршрут. Поэтому использование общего контроллера для маршрутизации, вероятно, является наименее грязным способом его обработки. – existdissolve