創(chuàng)建基于 React 和 Vue 的微應(yīng)用
本文轉(zhuǎn)載自微信公眾號「勾勾的前端世界」,作者 西嶺。轉(zhuǎn)載本文請聯(lián)系勾勾的前端世界公眾號。
(一)創(chuàng)建基于 React 的微應(yīng)用
1、創(chuàng)建 React 微應(yīng)用
創(chuàng)建應(yīng)用:create-single-spa,注意組織及項目名字,后面注冊微應(yīng)用是會用到:
1. 應(yīng)用目錄輸入 todos
2. 框架選擇 react
修改應(yīng)用端口 && 啟動應(yīng)用
啟動應(yīng)用:npm start
2、注冊應(yīng)用
將 React 項目的入口文件注冊到基座應(yīng)用 (容器應(yīng)用) 中
\container\src\study-root-config.js:
指定微前端應(yīng)用模塊的引用地址:
(可以直接訪問對應(yīng)應(yīng)用服務(wù)器,有提示 URL 加載地址)
指定公共庫的訪問地址,默認(rèn)情況下,應(yīng)用中的 react 和 react-dom 沒有被 webpack 打包,single-spa 認(rèn)為它是公共庫,不應(yīng)該單獨打包。
修改默認(rèn)應(yīng)用代碼,已獨立頁面展示應(yīng)用內(nèi)容
container\src\study-root-config.js
3、指定應(yīng)用渲染位置
micro\container\src\index.ejs
micro\todos\src\study-todos.js
4、React 應(yīng)用代碼解析
micro\todos\src\study-todos.js
5、React 微前端路由配置
準(zhǔn)備好兩個路由組件
micro\todos\src\home.js &µ\todos\src\about.js
micro\todos\src\root.component.js
路由文件已公共模塊引入,\micro\container\src\index.ejs
修改 webpack 配置文件,排除路由模塊打包,micro\todos\webpack.config.js
(二)創(chuàng)建基于 Vue 的微應(yīng)用
1、創(chuàng)建應(yīng)用
創(chuàng)建應(yīng)用:create-single-spa
1. 項目文件夾填寫 realworld
2. 框架選擇 Vue
3. 生成 Vue 2 項目
因為 vue && vue-router 需要通過公共模塊打包,所以,在應(yīng)用內(nèi)部需要配置不打包
micro\realworld\vue.config.js
修改項目啟動命令:micro\realworld\package.json
注冊應(yīng)用:micro\container\src\study-root-config.js
micro\container\src\index.ejs
加載 vue && vue-router
導(dǎo)入應(yīng)用,應(yīng)用地址可以直接訪問應(yīng)用后,在瀏覽器的提示中獲取。
2、應(yīng)用路由配置
\micro\realworld\src\main.js
micro\realworld\src\App.vue
(三)創(chuàng)建 utility modules
1、utility 獨立應(yīng)用創(chuàng)建
用于放置跨應(yīng)用共享的 JavaScript 邏輯,它也是獨立的應(yīng)用,需要單獨構(gòu)建單獨啟動。
1. 創(chuàng)建應(yīng)用:create-single-spa
1) 文件夾填寫 tools
2 ) 應(yīng)用選擇 in-browser utility module(styleguide, api cache, etc)
2. 修改端口,啟動應(yīng)用, \micro\tools\package.json
導(dǎo)出公共方法:micro\tools\src\study-tools.js
在模板文件中聲明應(yīng)用模塊訪問地址 : micro\container\src\index.ejs
2、在 React 應(yīng)用中使用該方法
MicroFrontends\micro\todos\src\about.js
3、在 Vue 應(yīng)用中使用該方法
micro\realworld\src\main.js
micro\realworld\src\components\Foo.vue