我正在几个微锋中分解一个有角的网。其中一个微前端处理购物车,它有一个服务来存储已经添加的产品。我的shell微前端需要使用该服务在图标中显示汽车中有多少项,添加新项目等。
我是否可以在存储在不同微前端的微前端中使用服务?
我正在使用这个教程,但它只解释了如何路由位于另一个微前端的页面。
谢谢。
发布于 2022-02-02 17:57:07
我是否可以在存储在不同微前端的微前端中使用服务?
编号。代码在您的微前端是不共享的彼此之间。
您需要在存储库中创建一个库项目。这个库将在您的微型应用程序中共享。在这里,您可以创建一个服务,用于存储一些数据,并在应用程序之间共享它。
发布于 2022-08-06 00:24:02
你可以做到这一点。
// In your remote module
@NgModule({
declarations: [],
imports: [CommonModule],
providers: [YourRemoteService],
})
export class YourRemoteModuleModule {
public constructor(
@Inject(YourRemoteService) private readonly yourRemoteService: YourRemoteService
) {}
/**
* Allows the to access YourRemoteService.
*
* @returns The service instance.
*/
public getService(): YourRemoteService {
return this.yourRemoteService;
}
}
// In the module that wants to load a remote module/service
import { loadRemoteModule } from '@angular-architects/module-federation';
import type { LoadRemoteModuleOptions } from '@angular-architects/module-federation';
const options: LoadRemoteModuleOptions = {
remoteEntry: // your entry
remoteName: // your remote name
exposedModule: // your exposed module
};
from(loadRemoteModule(options)).pipe(
switchMap((module) => this.compiler.compileModuleAsync<YourContract>(module[YourModule])),
map((moduleFactory) => {
const moduleRef = moduleFactory.create(this.injector);
const instance = moduleRef.instance;
return instance.getService(); // Your contract
});
https://stackoverflow.com/questions/70959941
复制相似问题