Комментарии 6
Да, планирую. Правда, когда я последний раз пробовал Ivy, нормально не получалось использовать angular material. Нужно будет глянуть, насколько уже все готово к production.
К сожалению, вся эта кухня с ComponentFactoryResolver, передачей инжектора и особенно ручным созданием SimpleChange оставляет данный подход в категории занятных упражнений, очень ограниченно применимых в обычном коде для продакшна.
В идеале это должно выглядеть как-то так:
// шаблон использует некий новый синтаксис для поддержки динамического рендеринга
@Component({
template: `
<this.ChildComponent *ngIf="childComponent" [input1]="" [input2]="" />
`
})
class ParentComponent {
public ChildComponent: ComponentType<ChildComponent> | undefined;
async loadChild() {
this.ChildComponent = await import ('./child.component').ChildComponent;
}
}
А возможна ли подгрузка следующей карточки в то время, пока пользователь размышляет над первой?
Данный подход максимально эффективен, если компонент, который загружается лениво, работает с сторонней не angular библиотекой(скажем chart.js). В противном случае появляется противоречие. Модули за компонент, загружаемый лениво, импортируются компонентом владельцем. Исключением можно считать случаи, если некий модуль содержит много внутренних компонентов, которые отображаются в зависимости от условия подаваемого извне. Тогда можно уменьшить размер начального файла. Но этот вариант необходим при необходимости, а не просто ради экономии 10кб. В большинстве случаев ленивая загрузка модуля достаточен. Модули можно грузить лениво и без перехода на нужный маршрут.
классно!
правда появляется доп оверхед по обработке ошибок связанных с потерей конекта или еще чего.
с лейзи модулями такие проблемы решаются на уровне роутера и его хендлерами а тут у вас к примеру, кусок формы не загрузился и она засабмитилась без контактных данных клиента
правда появляется доп оверхед по обработке ошибок связанных с потерей конекта или еще чего.
с лейзи модулями такие проблемы решаются на уровне роутера и его хендлерами а тут у вас к примеру, кусок формы не загрузился и она засабмитилась без контактных данных клиента
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Angular 9 и Ivy: ленивая загрузка компонентов