Что происходит, когда мы впервые загружаем наше приложение, используя Ember JS?
Я новичок в Ember, и я прошел через Ember JS Documentation
какое-то время и вдруг столкнулся с двумя вопросами. Я даже часами серфил в интернете и едва мог найти решение. Итак, вот они:
Вопрос 1:
Цитирование Ember Документация,
Приложение вводится при первой загрузке приложения. Как и любой другой маршрут, по умолчанию будет загружен шаблон приложения.
application
в приведенной выше цитате представляет application route
который в соответствии с документом загружается при загрузке приложения и отображает application.hbs
, Где находится маршрут приложения?
Вопрос 2:
Где именно в потоке управления router.js
файл загружается? До маршрута приложения или после маршрута приложения?
Запрос:
Также я был бы благодарен, если бы кто-нибудь мог помочь мне с полным потоком Ember JS (начиная, когда пользователь вводит localhost:4200
).
Благодарю.
2 ответа
Я попытаюсь сделать удар в этом... но я также смущен некоторыми из этого материала.
- Средство распознавания Ember выполняет большую часть работы на основе соглашений об именах. По умолчанию - в установке Ember уже создано несколько вещей - но при сборке / или через некоторое время в процессе - он создаст контроллеры и маршруты, которые могут подразумеваться, но которые вы не создали. Например... нет
application.js
маршрут в структуре вашей папки... но Эмбер создает его в таинственной зоне за кулисами. Это, вероятно, так, что вам не нужно думать о площади поверхности - если вы не используете ее явно. Точно так же, как этот "маршрут" - он тоже создаст контроллер. Маршрут "вводится" до визуализации шаблона - потому что он должен будет определять такие вещи, как модель - которая, кстати, является просто свойством, которое устанавливается на возможно несуществующем (насколько вам известно) контроллере то же имя. ( См. Перехваты жизненного цикла маршрута) Другими неявными маршрутами являются /index /error /loading и т. Д. - и все они есть - для каждого маршрута - даже если вы не видите файлы. Если вы хотите использовать их, вам нужно явно создать их (используйте CLI). - Я могу только представить, что маршрутизатор загружен задолго до того, как вы введете какой-либо маршрут... иначе он не будет знать, как что-то решить?- понял... попробуйте создать маршрут приложения - и фактически добавить его в маршрутизатор. Вещи сломаются. Но хорошая сторона в том, что вам не нужно вводить маршрут, который есть, что бы ни было?
- Я не уверен в каких-либо дополнительных особенностях (пока) - но я думаю, что это поток, который проходит через маленькие глазки и собирает больше данных в каждой области видимости в зависимости от моделей и атрибутов.
Вот несколько вещей, чтобы пережевать:
https://dockyard.com/blog/2016/09/14/understanding-ember-s-resolver
EmberConf 2017: Анимированное руководство по Ember Internals от Гэвина Джойса
Кроме того, курс Майка Норта по мастерам веб-интерфейса подробно рассматривается в этом материале. https://frontendmasters.com/workshops/ember/ - но вы не просто изучаете Ember... вы изучаете все, из чего сделан ember, например, es2015 - и в этой зоне не хватает тонны сочувствия
Если вы можете преодолеть первоначальные загадки - Эмбер это супер весело.:)
Похоже, что ваши основные вопросы были решены здесь, посмотрим, смогу ли я ответить на ваш основной вопрос потока приложений.
Ember запускает серию шагов, чтобы включить ваше приложение:
- приложение включено (запускает инициализаторы)
- включается экземпляр приложения (запускайте инициализаторы экземпляра)
- Экземпляр приложения загружает файл router.js
- маршрутизатор загружает маршрут приложения / контроллер
- маршрутизатор загружает указанный маршрут / контроллер (или возвращается к
index
маршрут / контроллер, если не указан)
Часть этого описана на диаграмме, показанной на этой странице ( https://guides.emberjs.com/v3.0.0/getting-started/core-concepts/), но, похоже, мы могли бы улучшить ее, чтобы прояснить ситуацию. Если у вас есть время / интерес, хотелось бы получить помощь в обновлении изображения!