時(shí)間:2022-08-11 17:06:01 | 來源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2022-08-11 17:06:01 來源:網(wǎng)站運(yùn)營(yíng)
Mooa 是一個(gè)為 Angular 服務(wù)的微前端框架,它是一個(gè)基于 single-spa,針對(duì) IE 10 及 IFRAME 優(yōu)化的微前端解決方案。angular-cli
來生成相應(yīng)的應(yīng)用:ng new hello-world
然后添加 mooa
依賴yarn add mooa
接著創(chuàng)建一個(gè)簡(jiǎn)單的配置文件 apps.json
,放在 assets
目錄下:[{ "name": "help", "selector": "app-help", "baseScriptUrl": "/assets/help", "styles": [ "styles.bundle.css" ], "prefix": "help", "scripts": [ "inline.bundle.js", "polyfills.bundle.js", "main.bundle.js" ] }]]
接著,在我們的 app.component.ts
中編寫相應(yīng)的創(chuàng)建應(yīng)用邏輯:mooa = new Mooa({ mode: 'iframe', debug: false, parentElement: 'app-home', urlPrefix: 'app', switchMode: 'coexist', preload: true, includeZone: true});constructor(private renderer: Renderer2, http: HttpClient, private router: Router) { http.get<IAppOption[]>('/assets/apps.json') .subscribe( data => { this.createApps(data); }, err => console.log(err) );}private createApps(data: IAppOption[]) { data.map((config) => { this.mooa.registerApplication(config.name, config, mooaRouter.hashPrefix(config.prefix)); }); const that = this; this.router.events.subscribe((event) => { if (event instanceof NavigationEnd) { that.mooa.reRouter(event); } }); return mooa.start();}
再為應(yīng)用創(chuàng)建一個(gè)對(duì)應(yīng)的路由即可:{ path: 'app/:appName/:route', component: HomeComponent}
接著,我們就可以創(chuàng)建 Mooa 子應(yīng)用。git clone https://github.com/phodal/mooa-boilerplate
然后執(zhí)行:npm install
在安裝完依賴后,會(huì)進(jìn)行項(xiàng)目的初始化設(shè)置,如更改包名等操作。在這里,將我們的應(yīng)用取名為 help。yarn build
就可以構(gòu)建出我們的應(yīng)用。dist
目錄一下的文件拷貝到主工程的 src/assets/help 目錄下,再啟動(dòng)主工程即可。mooaPlatform.navigateTo
,具體使用情況如下:mooaPlatform.navigateTo({ appName: 'help', router: 'home'});
它將觸發(fā)一個(gè) MOOA_EVENT.ROUTING_NAVIGATE
事件。而在我們調(diào)用 mooa.start()
方法時(shí),則會(huì)開發(fā)監(jiān)聽對(duì)應(yīng)的事件:window.addEventListener(MOOA_EVENT.ROUTING_NAVIGATE, function(event: CustomEvent) { if (event.detail) { navigateAppByName(event.detail) }})
它將負(fù)責(zé)將應(yīng)用導(dǎo)向新的應(yīng)用。關(guān)鍵詞:微服,使用
客戶&案例
營(yíng)銷資訊
關(guān)于我們
客戶&案例
營(yíng)銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。