Как сказано в заголовке, нужно ли нам вручную реализовать отложенную загрузку для модулей или Angular 6/7 делает это по умолчанию?
Angular 6/7 по умолчанию использует нетерпеливую / ленивую загрузку?
Ответы (2)
Angular по умолчанию использует активную загрузку, если не указано иное.
Чтобы реализовать отложенную загрузку, в RouterModule
необходимо указать следующие параметры:
Объект конфигурации маршрута с
loadChildren
вместоcomponent
. Присвоенное ему значение будет относительным путем к Lazy Loaded Module, за которым следует#
, за которым следует имя модуля.Модуль с отложенной загрузкой также должен реализовывать в себе модуль маршрутизации, и там он должен вызывать
forChild
вместоforRoot
.
В официальных документах Angular есть очень хорошее руководство, которое вы может следовать, чтобы реализовать ленивую загрузку модулей.
Вот Образец StackBlitz a>, которым вы можете следовать, чтобы реализовать отложенную загрузку.
Когда вы создаете приложение (с помощью ng build), оно объединяет его в несколько файлов сценариев * .js и добавляет ссылку на эти файлы сценариев в ваш файл index.html. Это файлы, которые вы развертываете на внутреннем сервере.
Когда пользователь обращается к вашему сайту (www.yoursite.com), он находит сервер, на котором размещен сайт, и извлекает файл index.html и все указанные файлы сценария, содержащие весь ваш код. Затем этот код загружается в браузер.
Ленивая загрузка включает в себя объединение вашего приложения в дополнительные пакеты, так что не все из него удаляется при закрытии файла index.html. Это улучшает «первую загрузку» вашей страницы для пользователя. Затем другие пакеты удаляются «по запросу» (то есть, когда пользователь обращается к маршруту по пути с отложенной загрузкой) или асинхронно в фоновом режиме после начальной загрузки.
По умолчанию Angular не выполняет отложенную загрузку. Это то, что вы определяете.
Сначала вы разделяете свое приложение на модули Angular. Ленивая загрузка определяется модулем. Каждый модуль определяет набор связанных компонентов, директив и каналов.
Затем вы используете специальный синтаксис для ленивой загрузки этих модулей, используя синтаксис в конфигурации маршрута, например:
{
path: 'products',
loadChildren: './products/product.module#ProductModule'
},
Затем Angular объединяет каждый модуль с отложенной загрузкой в свой собственный файл сценария отдельно от сценариев, указанных в файле index.html.
Вы можете узнать больше здесь: https://angular.io/guide/lazy-loading-ngmodules < / а>
declarations
из @NgModule
) в модуле.
- person SiddAjmera; 16.11.2018