Single-SPA — это фреймворк для построения микрофронтендов, позволяющий объединять несколько независимых приложений на одной странице.
bootstrap, mount, unmount и
опционально update.Для интеграции Single-SPA используется пакет
single-spa:
npm install single-spa
Создание корневого приложения:
import { registerApplication, start } from 'single-spa';
registerApplication({
name: 'angular-app',
app: () => import('./angular-app/main.js'),
activeWhen: ['/angular']
});
start();
В примере angular-app загружается только при переходе на
путь /angular.
Single-SPA предоставляет специальный пакет
single-spa-angular для Angular-приложений. Он
позволяет:
Пример обёртки Angular-приложения:
import { enableProdMode, NgZone } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { singleSpaAngular, getSingleSpaExtraProviders } from 'single-spa-angular';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
const lifecycles = singleSpaAngular({
bootstrapFunction: () => platformBrowserDynamic(getSingleSpaExtraProviders()).bootstrapModule(AppModule),
template: '<app-root />',
NgZone: NgZone,
});
export const { bootstrap, mount, unmount } = lifecycles;
Angular и Single-SPA вместе создают мощную комбинацию для масштабных проектов с несколькими независимыми модулями, обеспечивая плавную загрузку, изоляцию и удобное управление жизненным циклом приложений.