blazor-micro-frontends
Version:
Streamlined creation and integration of micro frontends using ASP.NET Blazor (Server/WebAssembly).
103 lines (76 loc) • 3.4 kB
Markdown
Blazor Micro Frontends
===
[//learn.microsoft.com/en-us/aspnet/core/blazor/components/js-spa-frameworks?#blazor-custom-elements) offers the ability to use [ASP.NET Core Razor Components](https://learn.microsoft.com/en-us/aspnet/core/blazor/components) across various Single Page Applications (SPAs).
Building on this solution, this package streamlines the creation and integration of micro frontends using **ASP.NET Blazor** (Server/WebAssembly).
* Examples of integrations with **Angular**, **Gatsby**, **Next.js**, **Remix** and **Vite** (React/Vanilla/Vue) are provided on **[GitHub](https://github.com/2and4/blazor-micro-frontends/)**.
* Follow the instructions to register [Blazor Custom Elements](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/js-spa-frameworks?#blazor-custom-elements).
```bash
npm install blazor-micro-frontends
```
* ASP.NET Blazor Server
```javascript
import { BlazorInitializerServer } from 'blazor-micro-frontends';
```
* ASP.NET Blazor WebAssembly
```javascript
import { BlazorInitializerWasm } from 'blazor-micro-frontends';
```
* ASP.NET Blazor Server
```javascript
const pathBase = '/blazor-assets-path/';
const initializer = new BlazorInitializerServer(pathBase);
//if static web assets are not bundled
initializer.useModulesLoader('YourBlazorAppName');
//override reconnect settings if necessary
//(defaults: maximumRetries = 10, intervallInMilliseconds = 1000)
initializer.setReconnectSettings(maximumRetries, intervallInMilliseconds);
```
* ASP.NET Blazor WebAssembly
```javascript
const pathBase = '/blazor-assets-path/';
const initializer = new BlazorInitializerWasm(pathBase);
//include a decoder if resources are encoded
const brotliDecode = await import('decode.min');
initializer.useDecoder(brotliDecode, '.br');
```
```javascript
await initializer.startAsync();
```
The startup options for ASP.NET Blazor remain fully customizable.
* [Blazor Startup Options Documentation](https://learn.microsoft.com/en-us/aspnet/core/blazor/fundamentals/startup?view=aspnetcore-9.0#startup-process-and-configuration)
```javascript
const startupOptions = initializer.getDefaultOptions();
startupOptions... //modify options as outlined in Microsoft's documentation
await initializer.startAsync(startupOptions);
```
```bash
npm install blazor-micro-frontends
```
```javascript
import { BlazorInitializerClient } from 'blazor-micro-frontends';
```
```javascript
const pathBase = '/blazor-assets-path/';
const initializer = new BlazorInitializerClient(pathBase);
//add scripts from your blazor micro frontend
initializer.useScripts('index.js');
//add styles from your blazor micro frontend
initializer.useStyles('styles.css');
```
```javascript
await initializer.initializeAsync();
```
This package is licensed under MIT. See the license file for more details.
](https: