本文同步發表在我的博客前端微架構實踐(二)css
由前一篇 前端微架構實踐 擴展而來,在支持主子項目拆分獨立開發部署的前提下,增長了對 React 的支持,也就是說這種模式支持如下特性:html
這是一種比較傻瓜式的架構模式,但容易理解並解決了目前項目所帶來的問題:項目大、打包慢、項目的技術棧或主庫版本一旦更新就涉及很大重構等等。流程圖在第一篇文章有介紹,這種模式的缺點:前端
在以前介紹的原理之上,新增長的部分:vue
<body>
<div id="vue"></div>
<div id="react"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js"></script>
<!--⚠️注意:這裏 store 我使用 vuex ,徹底可使用其餘庫,來實現主子項目對全局狀態的共享-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/vuex/3.1.1/vuex.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.1.3/vue-router.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.10.2/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.10.2/umd/react-dom.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-router-dom/5.1.2/react-router-dom.min.js"></script>
<!--菜單配置文件-->
<script src="http://localhost:85/config.js"></script>
</body>
複製代碼
在2個根容器中,分別存在 nav
和 root
,這是我同時使用 vue 和 react 渲染的2個掛載點,在主項目中,2個掛載點 vue-root
和 react-root
是必須的,這是提供給子項目渲染視圖的容器,其餘的內容能夠隨意寫。react
demo 圖15M,轉存失敗,直接掛連接吧webpack
Tips:菜單信息從配置文件讀取渲染(這裏 react 菜單是我寫死的)github
注意觀察路由以及 root
容器的變化,掛載容器始終只會被渲染其中的一個。另外,在 vue 實例中,主子項目還能夠互相調用。web
資源加載的大小以下圖:ajax
React 的項目模版 webpack 我複用了
vue-cli 3
,好用沒任何毛病,雖然能夠本身寫,但徹底不必。
安裝 micro-structure-cli 插件
micro init
# 選擇子項目
# 選擇 react
複製代碼
等待模版下載完成便可。
我大概的瞭解了目前比較流行的微架構框架 single spa
,發現
不知是我瞭解的不夠深仍是沒有看到更好的例子?歡迎回答。
我也看了 每日優鮮供應鏈前端團隊微前端改造,他們實現的模式是沒有跨技術棧的,因此可以獨立開發部署。可是爲了避免同的業務場景,使用不一樣的框架仍是很是很是有利的,例如表單使用 react 的 uform。
這種模式存在諸多的缺點與不足,可是帶來的收益遠大於弊端,何況嚐鮮與實踐不正是創新的表現嗎?
感謝閱讀!