基于react+antd+rxjs的大型admin系統(tǒng)的微前端方案

將多個可獨立交付的應(yīng)用組合成一個更大的應(yīng)用。

簡而言之恒界,微型前端就是將大而恐怖的東西切成更小十酣,更易于管理的部分际长,然后明確地表明它們之間的依賴關(guān)系。我們的團(tuán)隊以及我們的發(fā)布流程都應(yīng)該能夠彼此獨立地運行和發(fā)展工育,而無需過多的協(xié)調(diào)。

這是架構(gòu)方案:
1 應(yīng)用容器嘱朽,承載子應(yīng)用
2 子應(yīng)用,統(tǒng)一的應(yīng)用接口
3 react版本一致稀轨,antd的版本一致最好岸军,基于react的hook,配合rxjs做響應(yīng)式艰赞。


image.png

其中有個模塊服務(wù)和菜單服務(wù)方妖,這其實是為業(yè)務(wù)服務(wù)的,和微前端架構(gòu)沒什么聯(lián)系趁蕊,你們可以不要仔役。


image.png

這是一個架構(gòu)設(shè)計方案,還需要精細(xì)的代碼實現(xiàn)任柜,接下來我會將大部分核心代碼貼出來沛厨。

這是應(yīng)用最開始的部分,start為微前端啟動程序宅粥,傳遞兩個參數(shù)电谣,設(shè)置主頁,微前端所有子應(yīng)用的配置企垦,每個子應(yīng)用必須包含一個入口文件晒来。一下是我的示例代碼:

import start from './core/start';
import './index.less';
import { getApplicationContainer } from "./core/service/get-application-container";
import testData from './testData';

start({
    homePage: '/root/application/list',
    microFrontendConfig: [{
        version: '1.0.1',
        appName: 'root',
        appPath: 'root',
        resource: {
            js: ['/static/js/microfrontend.js']
        }
    }]
}).then(function () {
    // 處理好菜單的業(yè)務(wù)邏輯
    const applicationContainer = getApplicationContainer();
    let service = applicationContainer.moduleService;
    service.setModulesOptions(testData.modulesData);
    service.setModulesData(testData.modulesData);
    service.setCurrentModule(testData.modulesData[0]);

    // 根據(jù)當(dāng)前module去設(shè)置當(dāng)前的菜單
    service.obCurrentModule.subscribe((module) => {
        const menuService = applicationContainer.menuServie;
        if (module) {
            let menuObj = testData.menusData.filter(item => item.moduleCode === module.moduleCode);
            menuService.setMenusData(menuObj[0]?.menus);
        }
    });
});
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市接箫,隨后出現(xiàn)的幾起案子朵诫,更是在濱河造成了極大的恐慌,老刑警劉巖瞎领,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件九默,死亡現(xiàn)場離奇詭異宾毒,居然都是意外死亡,警方通過查閱死者的電腦和手機诈铛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門幢竹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人焕毫,你說我怎么就攤上這事⊙” “怎么了疙咸?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵撒轮,是天一觀的道長。 經(jīng)常有香客問我腔召,道長臀蛛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任客峭,我火速辦了婚禮抡柿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘备蚓。我一直安慰自己饮焦,他們只是感情好靠胜,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布袁勺。 她就那樣靜靜地躺著茧球,像睡著了一般煞肾。 火紅的嫁衣襯著肌膚如雪条辟。 梳的紋絲不亂的頭發(fā)上冀偶,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天鬓梅,我揣著相機與錄音吞获,去河邊找鬼况凉。 笑死,一個胖子當(dāng)著我的面吹牛各拷,可吹牛的內(nèi)容都是我干的刁绒。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼烤黍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蚊荣?” 一聲冷哼從身側(cè)響起初狰,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎互例,沒想到半個月后奢入,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡媳叨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年腥光,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糊秆。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡武福,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出痘番,到底是詐尸還是另有隱情捉片,我是刑警寧澤平痰,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站伍纫,受9級特大地震影響宗雇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜莹规,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一赔蒲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧良漱,春花似錦舞虱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至窒篱,卻和暖如春焕刮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背墙杯。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工配并, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人高镐。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓溉旋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嫉髓。 傳聞我的和親對象是個殘疾皇子观腊,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348