qiankun微前端使用

微前端是什么?

微前端就是頁面的某個功能可以獨立為一個項目進行開發、部署。比如:自己的項目使用iframs引入百度

qiankun

qiankun是一個基于single-spa的微前端實現庫,qiankun 對于用戶而言只是一個類似 jQuery 的庫,你需要調用幾個 qiankun 的 API 即可完成應用的微前端改造

主應用

安裝qiankun

npm i qiankun -S	

主應用配置

在webpack入口js文件中引入qiankun方法注入。

//qiankun配置
import { registerMicroApps, start } from 'qiankun';//子應用列表
let apps = [{name:'subapp',entry:'//localhost:8080',//子應用的地址,這里演示是本地啟動的地址。container:'#app',//子應用的容器節點的選擇器(vue一般為app)activeRule:'/subapp',//訪問子應用的規則,比如:主應用為localhost:8081,那訪問該子應用的url應為localhost:8081/subapp}
]//注冊子應用
registerMicroApps(apps);//啟動
start();

子應用配置

src中創建public-path.js文件

//public-path.jsif (window.__POWERED_BY_QIANKUN__) {__webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__;
}

main.js 中加入子應用生命周期函數,統一調用

import Vue from 'vue'
import App from './App.vue'Vue.config.productionTip = falselet instance = null;
function render(props = {}) {const { container } = props;instance = new Vue({render: (h) => h(App),}).$mount(container ? container.querySelector('#app') : '#app');
}// 獨立運行時
if (!window.__POWERED_BY_QIANKUN__) {render();
}export async function bootstrap() {console.log('[vue] vue app bootstraped');
}
export async function mount(props) {console.log('[vue] props from main framework', props);render(props);
}
export async function unmount() {instance.$destroy();instance.$el.innerHTML = '';instance = null;
}

解決跨域問題

子應用和主應用為兩個服務,分別在兩個端口,要想通過主應用訪問子應用的資源必定會存在跨域問題
vue.config.js

const { name } = require('./package');
module.exports = {devServer: {headers: {'Access-Control-Allow-Origin': '*',},},configureWebpack: {output: {library: `${name}-[name]`,libraryTarget: 'umd', // 把微應用打包成 umd 庫格式jsonpFunction: `webpackJsonp_${name}`, // webpack 5 需要把 jsonpFunction 替換成 chunkLoadingGlobal},},
};

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/711016.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/711016.shtml
英文地址,請注明出處:http://en.pswp.cn/news/711016.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mysql 數據類型的轉換之 cast()

語法 cast( value as type) value 要進行數據轉換的值(可以為任何類型)。type 要轉換為的數據類型。type 的常見的類型可以為 : decimal十進制浮點數。可以使用可選的 M 和 D 參數指定最大位數 (M) 和小數點后的位數 (D)float浮點數dou…

信息安全應急響應方法詳解

預防措施 定期進行安全漏洞掃描和修復強化身份驗證和訪問控制加強網絡安全防護和監控建立災難恢復和應急預案 應急響應步驟 識別和確認安全事件 監控系統日志和警報,快速發現異常行為利用安全信息和事件管理系統(SIEM)進行實時監控 隔離受…

華潤置地品牌虛擬代言人IP“吉吉”,開啟地產數字化營銷新場景

在數字化營銷時代,房地產品牌通過虛擬人技術,可以有效鏈接購房者,占領客戶心智,優化購房體驗,塑造年輕化、數字化的品牌形象。 華潤置地積極擁抱數字變革,通過廣州虛擬動力「現場虛擬主持技術服務」與「虛…

leetcode-數字轉換為十六進制

405. 數字轉換為十六進制數 題解: 首先,我們需要創建一個映射表,將十進制數0-15映射到十六進制數的字符0-f。然后,我們需要處理負數的情況。對于負數,我們首先將其轉換為補碼形式,然后再進行轉換。接下來…

【Unity】使用Unity實現雙屏顯示

引言 在使用Unity的時候,有時候會需要使用雙屏顯示 簡單來說就是需要在兩個顯示器中顯示游戲畫面 雙屏顯示注意點: ①雙屏顯示需要電腦有兩個顯示 ②雙屏顯示只能用于PC端 ③不僅僅可以雙屏,Unity最大支持8屏顯示 1.相機設置 ①我們打開Un…

Untiy webgl iis服務器加載ab包報404.3,需要為AB包添加MIMI映射

首選確定一下文件在不在 這里是缺少對于AB包文件類型的映射,因為AB包沒有后綴名,我們為服務器添加通用的映射 1 開始菜單搜索iis管理器,先選中我們的服務器,然后雙擊進入MIME類型 2 右側點擊添加按鈕 3 添加如下內容 文件擴展名為. 類型為…

JAVA學習-控制執行流程.函數

一、Java中的控制執行流程的主要方式有以下幾種: 1. 條件語句(if-else語句、switch語句): 根據條件選擇不同的執行路徑。 2. 循環語句(for循環、while循環、do-while循環): 重復執行某段代碼…

性能測試-并發測試心得

一些關鍵名詞 吞吐量 指的是在一定時間內系統處理請求或傳輸數據的能力,具體到性能測試中的話,就是指單位時間內系統處理并完成的請求數量或者是系統傳輸的數據量。 例如,吞吐量可以表示為系統每秒處理HTTP請求次數,或者是系統…

服務器git安裝python包失敗,如何手動下載github項目包并安裝到虛擬環境中(簡單易懂)

背景: 想要復現一個項目,建立好虛擬環境后,準備安裝項目需要的包,故輸入命令pip install -r requirements.txt requirements.txt如下圖 其他包我都安裝成功了,只有最后一個包失敗了,是需要服務器git鏈接…

【學習心得】解決無限debugger的常用方法

一、什么是無限debugger 有些網站為了防止爬蟲或其他惡意行為,會故意設置無限debugger作為一種簡單的反爬機制,它會在開發者工具打開的情況下不斷暫停執行。這對于想要分析其他代碼邏輯、排查問題或進行正常開發調試工作的開發者來說極為不便。 二、解決…

Sora學習筆記

Sora - 探索AI視頻模型的無限可能 隨著人工智能技術的飛速發展,AI視頻模型已成為科技領域的新熱點。而在這個浪潮中,OpenAI推出的首個AI視頻模型Sora,以其卓越的性能和前瞻性的技術,引領著AI視頻領域的創新發展。讓我們將一起探討…

ios 使用window.location.href 不能跳轉微信短鏈處理過程以及解決方法

需求背景: 由h5提供頁面,通過后臺請求微信api生成對應的schemal短鏈,該h5頁面嵌入到原生的ios以及安卓app上,當用戶點擊后通過短連接跳轉到其他小程序中 以下為生成微信scheme代碼示例,生成后短鏈為:weixi…

linux常見signal信號總結

文章目錄 SIGSEGVSIGALRMSIGINTSIGCHLD SIGSEGV 在POSIX兼容的平臺上,SIGSEGV是當一個進程執行了一個無效的內存引用,或發生段錯誤時發送給它的信號 SIGALRM 已到通過調用alarm函數注冊的時間 SIGINT 輸入cltrlc SIGCHLD 子進程終止

【分享】在 Python 編程中提高效率的技巧

在 Python 編程中,有許多技巧可以幫助提高效率,從代碼優化到工作流程改進。 以下是一些可以分享的技巧: 1、使用列表推導式和生成器表達式:列表推導式和生成器表達式是 Python 中的一種簡潔而高效的方法,用于快速創建…

Azure[Sky] Dynamic Skybox

Azure[Sky] Dynamic Skybox是一個完整而穩健的天空系統,它可將你的項目提升大到其他層次。 Azure[Sky] 不僅適合使用現實圖片的項目,事實上,該系統用在風格化圖片的項目也很不粗,甚至效果更好。使用 Azure,每種風格都能實現最佳效果。 性能: 在開發此資源的過程中,性能是…

【Android】屬性動畫

在屬性動畫出現之前,Android 系統提供的動畫只有幀動畫和 View 動畫。View 動畫我們都了解,它提供了 AlphaAnimation、RotateAnimation、TranslateAnimation、ScaleAnimation 這4種動畫方式,并提供了 AnimationSet 動畫集合來混合使用多種動畫…

35. 【Linux教程】Linux 修改用戶組

前面小節介紹了如何添加用戶組,本小節介紹如何給已經添加的新用戶組修改信息,從 /etc/group 文件信息可以看到,用戶組的信息比用戶信息項少,和 usermod 命令類似,用戶組的信息可以使用 groupmod 命令修改。 1. groupmo…

為了董宇輝,老婆跟我打起來了!寫下一份深刻檢討

兩個月前,因為討論董宇輝小作文事件,跟老婆吵起來了。起因就為了兩句話,寫了這份檢討!給大家分享一下。 老婆在網上刷了兩晚關于董宇輝小作文的視頻,一直為董宇輝喊冤、打抱不平。起初,我跟老婆的想法&…

類型字段定義影響WebApi傳值及SqlSugar調用Select創建新對象

ASP.NET Core編寫的WebApi,由于輸入參數較多,專門定義了輸入參數類并設置[FromBody]方式傳值,但測試時始終無法通過postman將輸入參數值傳遞給WebApi,condition對象的所有屬性值一直都為空。同時在WebApi內部調用SqlSugar查詢數據…

怎樣消除視頻上的字幕和文字?3個方法值得推薦

怎樣消除視頻上的字幕和文字?消除視頻上的字幕和文字不僅是一個常見的需求,更是一個對視頻內容質量提升的關鍵步驟。特別是在處理從網絡下載的帶有水印或標識的視頻時,這些額外的文字和信息往往會干擾觀眾的觀看體驗,甚至可能影響…