微前端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.mzph.cn/web/63826.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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多种不同的液体背景和动画。这些高质量的资源非常适合通过充满活力和动态的视觉效果来增强您的项目…

概率论 期末 笔记

第一章 随机事件及其概率 利用“四大公式”求事件概率 习题 推导 全概率公式与贝叶斯公式 伯努利概型求概率 一维随机变量及其分布

VLAN数据格式

概念&#xff1a;VLAN叫做虚拟局域网&#xff0c;指在物理网络中根据用于、工作组、应用等进行逻辑划分的局域网&#xff0c;是一个广播域&#xff0c;与用户的物理位置没有关系。 作用&#xff1a;VLAN可以灵活的进行分段和组织&#xff0c;能够实现更好的安全性&#xff0c;…

计算机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;从而清晰地表达了系统的行…

概率论得学习和整理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;而…

使用开源在线聊天工具Fiora轻松搭建个性化聊天平台在线交流

文章目录 前言1.关于Fiora2.安装Docker3.本地部署Fiora4.使用Fiora5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定Uptime Kuma公网地址 前言 今天给大家介绍一款免费开源的在线聊天工具——Fiora。它不仅是一款功能强大的即时通讯软件&#xff0c;更是开发者们展现创造…

VS Code Copilot 与 Cursor 对比

选手简介 VS Code Copilot&#xff1a;算是“老牌”编程助手了&#xff0c;虽然Copilot在别的编辑器上也有扩展&#xff0c;不过体验最好的还是VS Code&#xff0c;毕竟都是微软家的所以功能集成更好一些&#xff1b;主要提供的是Complete和Chat能力&#xff0c;也就是代码补全…

Java Spring Boot 项目中嵌入前端静态资源:完整教程与实战案例

言简意赅的讲解Java Spring Boot 中嵌入前端项目的静态资源解决的痛点 之前给大家讲解了如何部署一个前端项目&#xff0c;但大家还是好奇如何部署一个前后端一体项目。将前端构建后的静态资源嵌入 Java Spring Boot 后端项目&#xff0c;是现代全栈开发中一种流行的实践方式。…

RabbitMQ中的Topic模式

在现代分布式系统中&#xff0c;消息队列&#xff08;Message Queue&#xff09;是实现异步通信、解耦系统组件的重要工具。RabbitMQ 是一个广泛使用的开源消息代理&#xff0c;支持多种消息传递模式&#xff0c;其中 Topic 模式 是一种灵活且强大的模式&#xff0c;允许生产者…

可编辑99PPT | 智能工厂整体规划方案及实施细部方案

荐言分享&#xff1a;智能工厂是利用物联网、大数据、人工智能等先进技术&#xff0c;实现生产过程自动化、智能化和柔性化的现代工厂。本整体规划方案旨在通过整合信息技术、自动化技术、人工智能技术和物联网技术&#xff0c;构建一个高效、灵活、绿色、可持续的生产环境&…

Day13 用Excel表体验梯度下降法

Day13 用Excel表体验梯度下降法 用所学公式创建Excel表 用Excel表体验梯度下降法 详见本Day文章顶部附带资源里的Excel表《梯度下降法》&#xff0c;可以对照表里的单元格公式进行理解&#xff0c;还可以多尝试几次不同的学习率 η \eta η来感受&#xff0c;只需要更改学习率…

YOLOv8改进,YOLOv8引入Hyper-YOLO的MANet混合聚合网络+HyperC2Net网络

摘要 理论介绍 MANet 的目标是通过多种卷积操作的协同作用,提高特征提取能力,并加强梯度流动,从而提升模型在不同层次的特征表示和语义深度。MANet 结合了三种卷积变体,通过混合使用它们来提高视觉特征的多样性和信息流动性。 HyperC2Net 的主要目标是通过超图结构对多层次…

Nautilus源码编译傻瓜式教程二

Nautilus源码编译傻瓜式教程一 Nautilus编译 依赖项文件 接上文,点击小锤子进行编译后出现如下的错误提示 看这个报错,未找到文件或目录,再看前面的git地址是github就知道肯定是下载有问题,查找下Nautilus项目,发现在nautilus/build-aux/flatpak/org.gnome.Nautilus.json文件…

Java中使用四叶天动态代理IP构建ip代理池,实现httpClient和Jsoup代理ip爬虫

在本次爬虫项目中&#xff0c;关于应用IP代理池方面&#xff0c;具体完成以下功能&#xff1a; 从指定API地址提取IP到ip池中&#xff08;一次提取的IP数量可以自定义更改&#xff09; 每次开始爬虫前&#xff08;多条爬虫线程并发执行&#xff09;&#xff0c;从ip池中获取一…