微前端qiankun的使用——實踐

qiankun

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

創建主應用項目——vue2

  1. main.js注冊子應用
$ yarn add qiankun # 或者 npm i qiankun -S
import { registerMicroApps, start } from 'qiankun';
import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import "lib-flexible";import { Button } from "vant";
Vue.use(Button);Vue.config.productionTip = false;
// 注冊子應用
registerMicroApps([{name: 'vueApp',entry: '//localhost:8081',container: '#container',activeRule: '/app-a',},{name: 'vueApp1',entry: '//localhost:8082',container: '#container',activeRule: '/app-b',}
]);// 啟動 Qiankun
start();
import service from "./utils/request";
Vue.prototype.$axios = service;
new Vue({router,store,render: (h) => h(App),
}).$mount("#app");
  1. 創建子應用容器
    在這里插入圖片描述
    3.路由history模式
    在這里插入圖片描述
    4.首頁跳轉鏈接
<template><div><h1>主應用門戶頁面</h1><router-link to="/app-a">前往子應用 A</router-link><br /><router-link to="/app-b">前往子應用 B</router-link></div>
</template>

子應用 app-a

  1. 在 src 目錄新增 public-path.js

== bug:下面注釋不能刪掉,否則會報錯 ==

if (window.__POWERED_BY_QIANKUN__) {// eslint-disable-next-line no-undef__webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__;
}
  1. 入口文件 main.js 修改
import './public-path';
import Vue from "vue";
import App from "./App.vue";
import VueRouter from 'vue-router';
import { routes } from "./router/index";
import store from "./store";
import "lib-flexible";import { Button } from "vant";
Vue.use(Button);Vue.config.productionTip = false;let router = null;
let instance = null;
function render(props = {}) {const { container } = props;router = new VueRouter({base: window.__POWERED_BY_QIANKUN__ ? '/app-a/' : '/', // 注意這里的路由需要和主應用的注冊路由一致mode: 'history',routes,});instance = new Vue({router,store,render: (h) => h(App),}).$mount(container ? container.querySelector('#app') : '#app');
}export async function bootstrap() {console.log('[vue] vue app bootstraped');
}
export async function mount(props) {console.log(11111111, 'app-a mount', props);render(props);
}
export async function unmount() {instance.$destroy();instance.$el.innerHTML = '';instance = null;router = null;console.log(11111111, 'app-a unmount');
}
import service from "./utils/request";
Vue.prototype.$axios = service;// 獨立運行時
if (!window.__POWERED_BY_QIANKUN__) {render();
}
  1. 路由文件,注意導出 路由數組routes 和 路由實例 router
import Vue from "vue";
import VueRouter from "vue-router";
import home from "../views/home/index.vue";Vue.use(VueRouter);export const routes = [{path: "/",name: "home",component: home,},{path: "/course",name: "course",component: () => import("../views/course/index.vue"),},
];const router = new VueRouter({mode: 'history',routes,
});export default router;
Vue.use(VueRouter);
  1. 打包配置修改(vue.config.js)
const { defineConfig } = require("@vue/cli-service");
const { name } = require('./package');
module.exports = defineConfig({devServer: {headers: {'Access-Control-Allow-Origin': '*',},proxy: {//配置跨域"/stage-api": {target: "http://192.168.0.19:8801", //這里后臺的地址模擬的;應該填寫你們真實的后臺接口changOrigin: true, //允許跨域pathRewrite: {/* 重寫路徑,當我們在瀏覽器中看到請求的地址為:http://localhost:8080/api/core/getData/userInfo 時實際上訪問的地址是:http://121.121.67.254:8185/core/getData/userInfo,因為重寫了 /api*/"^/stage-api": "/",},},},},configureWebpack: {output: {library: `${name}-[name]`,libraryTarget: 'umd', // 把微應用打包成 umd 庫格式chunkLoadingGlobal: `webpackJsonp_${name}`, // webpack 5 需要把 jsonpFunction 替換成 chunkLoadingGlobal},},
});

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

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

相關文章

后端項目java中字符串、集合、日期時間常用方法

我這里只介紹了項目中最常用的哈,比如像集合有很多,但我們最常用的就是ArrayList。 然后我這里會以javascript中的字符串、數組的方法為基準來實現,有些方法js和java會有些區別也會介紹 字符串 每次修改 String 對象都會創建一個新的對象,而 StringBuffer 可以在同一個對象…

Ubuntu 22.04永久保存路由

在 Ubuntu 22.04 上&#xff0c;可以按照以下方式配置讓流量訪問 172.19.201.207 走指定的路由。 1. 臨時添加路由 臨時路由規則只在當前系統會話中有效&#xff0c;重啟后會丟失。 添加路由規則 運行以下命令&#xff1a; sudo ip route add 172.19.201.207 via 192.168.2…

實用 Linux 之命令(Practical Linux Commands)

實用 Linux之 命令&#xff0c;可以解決日常99%的問題~ 1、基本命令 uname -m 顯示機器的處理器架構uname -r 顯示正在使用的內核版本dmidecode -q 顯示硬件系統部件(SMBIOS / DMI) hdparm -i /dev/hda 羅列一個磁盤的架構特性hdparm -tT /dev/sda 在磁盤上執行測試性讀取操作…

SAP SD客戶主數據及其配置

一、客戶主數據概述 在SD模塊概覽中對于SD模塊及其有關的三大主數據進行了概要介紹&#xff0c;本篇文章將重點對于客戶主數據進行有關介紹。 1、業務伙伴主數據 在提到客戶主數據之前&#xff0c;我們先了解業務伙伴主數據的概念。 業務伙伴主數據是一個更廣泛的概念&#x…

GitCode 光引計劃征文展示|MilvusPlus:開啟向量數據庫新篇章

在人工智能和大數據時代&#xff0c;向量數據庫作為處理非結構化數據的核心技術&#xff0c;正變得越來越重要。MilvusPlus&#xff0c;作為「光引計劃」的一部分&#xff0c;應運而生&#xff0c;旨在提供一個高性能、易擴展、全功能的向量數據庫解決方案。項目背景根植于對現…

網絡架構與IP技術:4K/IP演播室制作的關鍵支撐

隨著科技的不斷發展&#xff0c;廣播電視行業也在不斷迭代更新&#xff0c;其中4K/IP演播室技術的應用成了一個引人注目的焦點。4K超高清技術和IP網絡技術的結合&#xff0c;不僅提升了節目制作的畫質和效果&#xff0c;還為節目制作帶來了更高的效率和靈活性。那么4K超高清技術…

30多種獨特藝術抽象液態酸性金屬鍍鉻封面背景視覺紋理MOV視頻素材

使用 Prismatic Flows 轉換您的項目&#xff01;這個包擁有 30 多種獨特的液體背景和動畫&#xff0c;為任何創意活動提供令人驚嘆的視覺效果。 棱鏡流 – 動畫背景和迭加包括30多種不同的液體背景和動畫。這些高質量的資源非常適合通過充滿活力和動態的視覺效果來增強您的項目…

32. 線程、進程與協程

一、什么是多任務 如果一個操作系統上同時運行了多個程序&#xff0c;那么稱這個操作系統就是 多任務的操作系統&#xff0c;例如&#xff1a;Windows、Mac、Android、IOS、Harmony 等。如果是一個程序&#xff0c;它可以同時執行多個事情&#xff0c;那么就稱為 多任務的程序。…

概率論 期末 筆記

第一章 隨機事件及其概率 利用“四大公式”求事件概率 習題 推導 全概率公式與貝葉斯公式 伯努利概型求概率 一維隨機變量及其分布

VLAN數據格式

概念&#xff1a;VLAN叫做虛擬局域網&#xff0c;指在物理網絡中根據用于、工作組、應用等進行邏輯劃分的局域網&#xff0c;是一個廣播域&#xff0c;與用戶的物理位置沒有關系。 作用&#xff1a;VLAN可以靈活的進行分段和組織&#xff0c;能夠實現更好的安全性&#xff0c;…

css 裁剪 clip-path

clip-path 是一個強大的 CSS 屬性&#xff0c;用于裁剪元素的可視區域&#xff0c;支持多種形狀裁剪。它可以用來創建復雜的裁剪效果&#xff0c;如圓形、多邊形、路徑等。 clip-path: none | shape | url(#clipPathId);none&#xff1a;不裁剪&#xff0c;顯示完整內容。shap…

*【每日一題 基礎題】 [藍橋杯 2023 省 B] 飛機降落

題目描述 N 架飛機準備降落到某個只有一條跑道的機場。其中第 i 架飛機在 Ti 時刻到達機場上空&#xff0c;到達時它的剩余油料還可以繼續盤旋 Di 個單位時間&#xff0c;即它最早可以于 Ti 時刻開始降落&#xff0c;最晚可以于 Ti Di 時刻開始降落。降落過程需要 Li個單位時間…

計算機vcruntime140_1.dll丟失是什么原因?vcruntime140_1.dll丟失的解決辦法如下:

計算機中vcruntime140_1.dll文件丟失的原因可能有多種&#xff0c;以下是一些常見的原因&#xff1a; 安裝不完整或損壞&#xff1a;某些應用程序在安裝過程中可能因為意外中斷、安裝程序損壞或其他原因導致vcruntime140_1.dll未能正確安裝或復制到系統目錄。軟件卸載或更新不…

Redis學習(三)緩存

Redis學習&#xff08;三&#xff09;緩存 一、什么是緩存?如何使用緩存 二、添加商戶緩存1、緩存模型和思路2、緩存更新策略1、數據庫緩存不一致解決方案&#xff1a;2、數據庫和緩存不一致采用什么方案 3、實現商鋪和緩存與數據庫雙寫一致 三、緩存穿透問題的解決思路1、編碼…

軟件設計與體系結構

1.簡要說明什么是軟件體系結構&#xff0c;軟件體系結構模型&#xff0c;為什么要建立軟件體系結構模型&#xff1f; 答&#xff1a;軟件體系結構指一個軟件系統在高層次上的結構化組織方式&#xff0c;包括系統的組成部分和各個部分之間的關系&#xff0c;以及它們與環境之間的…

Essential Use Cases和Real Use Cases

在軟件開發領域&#xff0c;用例&#xff08;Use Cases&#xff09;是一種非常重要的工具&#xff0c;它能夠幫助開發團隊、產品經理以及用戶之間對系統的功能需求達成一致。用例描述了在特定條件下&#xff0c;系統對用戶請求所做出的響應&#xff0c;從而清晰地表達了系統的行…

P102如何降頻降壓

要對NVIDIA P102顯卡進行降頻降壓操作&#xff0c;可以按照以下步驟進行&#xff1a; ? 使用MSI Afterburner軟件&#xff1a; ? 打開MSI Afterburner&#xff0c;使用曲線編輯器調整頻率和電壓。豎軸為核心頻率&#xff0c;橫軸為電壓。通過整體下移靠后的頻率和電壓區域&a…

概率論得學習和整理32: 用EXCEL描述正態分布,用δ求累計概率,以及已知概率求X的區間

目錄 1 正態分布相關 2 正態分布的函數和曲線 2.1 正態分布的函數值&#xff0c;用norm.dist() 函數求 2.2 正態分布的pdf 和 cdf 2.3 正態分布的圖形隨著u 和 δ^2的變化 3 正態分布最重要的3δ原則 3.0 注意&#xff0c;這里說的概率一定是累計概率CDF&#xff0c;而…

HTML5文檔元數據詳解

HTML5文檔元數據詳解 在HTML5中&#xff0c;元數據&#xff08;Meta Data&#xff09;是文檔頭部的重要組成部分&#xff0c;提供了關于網頁本身的信息。以下是一些常見的元數據標簽及其詳細說明。 1. <meta> 標簽 <meta>標簽用于定義文檔的元數據&#xff0c;通…

使用開源在線聊天工具Fiora輕松搭建個性化聊天平臺在線交流

文章目錄 前言1.關于Fiora2.安裝Docker3.本地部署Fiora4.使用Fiora5.cpolar內網穿透工具安裝6.創建遠程連接公網地址7.固定Uptime Kuma公網地址 前言 今天給大家介紹一款免費開源的在線聊天工具——Fiora。它不僅是一款功能強大的即時通訊軟件&#xff0c;更是開發者們展現創造…