微應(yīng)用:乾坤(qiankun2.0)搭建Vue應(yīng)用

微頁面配置文檔

官方文檔:https://qiankun.umijs.org/

參考Demo:https://github.com/wl-ui/wl-mfe

注:所有文件的相關(guān)代碼在文檔末尾附件提供,將文件類型有txt改為js就可使用

一、[endif]主應(yīng)用配置

1、安裝qiankun2.0

$ yarn add qiankun # 或者 npm i qiankun -S

2、配置主應(yīng)用main.js,在主應(yīng)用入口文件main.js寫入以下四行代碼

a、register.js:利用qiankun2.0框架注冊(registerMicroApps)并啟動(start)子應(yīng)用,并開啟一些監(jiān)控及全局錯(cuò)誤異常處理。如下圖:

b、initGlStore.js:利用qiankun2.0框架提供通信(initGlState)來定義和初始化全局狀態(tài)字段,然后實(shí)現(xiàn)主應(yīng)用、子應(yīng)用的通信及通信監(jiān)聽。如下圖:

props根據(jù)系統(tǒng)業(yè)務(wù)需要定義需要傳入子頁面的公共數(shù)據(jù),可以包含公共組件、公共方法、主應(yīng)用路由、http請求等。

3、[endif]如何在主應(yīng)用的某個(gè)路由頁面加載微應(yīng)用

官方文檔地址:https://qiankun.umijs.org/zh/faq#如何在主應(yīng)用的某個(gè)路由頁面加載微應(yīng)用

a、必須保證微應(yīng)用加載時(shí)主應(yīng)用這個(gè)路由頁面也加載了。

主應(yīng)用注冊這個(gè)路由時(shí)給path 加一個(gè) *,注意:如果這個(gè)路由有其他子路由,需要另外注冊一個(gè)路由,仍然使用這個(gè)組件即可。

const routes = [

{

? ? path: '/portal/*',

? ? name: 'portal',

? ? component: () => import('../views/Portal.vue'),

? },

];

b、微應(yīng)用的activeRule 需要包含主應(yīng)用的這個(gè)路由 path。

registerMicroApps([

? {

? ? name: 'app1',

? ? entry: 'http://localhost:8080',

? ? container: '#container',

? ? activeRule: '/portal/app1',

? },

]);

c、注意事項(xiàng):在Portal.vue 這個(gè)組件的 mounted 周期調(diào)用 start 函數(shù),注意不要重復(fù)調(diào)用。

import { start } from 'qiankun';

export default {

mounted() {

? ? if (!window.qiankunStarted) {

? ? ? window.qiankunStarted = true;

? ? ? start();

? ? }

? },

};

二、子應(yīng)用配置(不需要安裝qiankun2.0)

1、在 src 目錄新增 public-path.js。如下圖:

2、配置子應(yīng)用入口文件main.js (注:為了避免根id #app 與其他的 DOM 沖突,按需修改)。如下圖:

3、打包配置修改(vue.config.js)。如下圖:


4、子應(yīng)用接受主應(yīng)用的傳值

a、在子應(yīng)用的main.js中調(diào)用app-store.js的appStore方法。

b、appStore的具體處理。接受保存供子應(yīng)用使用

5、微應(yīng)用打包之后css 中的字體文件和圖片加載 404

官方地址:https://qiankun.umijs.org/zh/faq#微應(yīng)用打包之后css中的字體文件和圖片加載 404

選擇的是官方第三種方案。如下圖:

三、其他一些問題

1、如何同時(shí)激活兩個(gè)微應(yīng)用?

官網(wǎng)地址:https://qiankun.umijs.org/zh/faq#如何同時(shí)激活兩個(gè)微應(yīng)用

2、[endif]如何確保主應(yīng)用跟微應(yīng)用之間的樣式隔離

官網(wǎng)地址:https://qiankun.umijs.org/zh/faq#如何確保主應(yīng)用跟微應(yīng)用之間的樣式隔離



附件:百度網(wǎng)盤鏈接

鏈接:https://pan.baidu.com/s/1xU8zBa4cqXWWkmBYhPWC_A

提取碼:oef6

1、主應(yīng)用register.js

2、主應(yīng)用initGlStore.js

3、子應(yīng)用main.js

4、子應(yīng)用app-store.js

5、子應(yīng)用public-path.js

6、子應(yīng)用vue.config.js

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容