App Shell — архитектурный подход, позволяющий ускорить загрузку приложений за счёт предварительного рендеринга минимальной структуры страницы. В Angular App Shell интегрируется через Angular Universal, обеспечивая серверный рендеринг (SSR) для первоначального контента.
App Shell генерирует статическую версию пользовательского интерфейса, которая отображается сразу при загрузке, даже если Angular-приложение ещё не инициализировалось на клиенте. Это минимизирует время до первого meaningful paint, улучшая восприятие скорости приложения.
ng add @nguniversal/express-engine
ng generate app-shell --client-project my-app
App Shell рендерит только определённые маршруты (например,
/home), остальные страницы подгружаются динамически через
Angular.
@NgModule({
imports: [
BrowserModule.withServerTransition({ appId: 'my-app' }),
AppRoutingModule,
ServerModule
],
bootstrap: [AppComponent]
})
export class AppServerModule {}
Использование App Shell в сочетании с ленивой загрузкой модулей и оптимизированными анимациями позволяет строить быстрые и отзывчивые Angular-приложения, обеспечивая плавный пользовательский опыт с минимальным временем ожидания.