qiankun微前端

qiankun微前端

  • 主项目
    • 1、安装qiankun
    • 2、main.js引入注册
  • 二、子项目
    • 1、安装@sh-winter/vite-plugin-qiankun
    • 2、main.js配置
    • 3、vite.config.js配置
  • 三、问题解决
  • 四、一键启动

主项目

1、安装qiankun

npm i qiankun -S

2、main.js引入注册

import { createApp } from 'vue'
import { createPinia } from 'pinia'import App from './App.vue'
import router from './router'const app = createApp(App)
app.use(createPinia())
app.use(router)
app.mount('#app')//引入
import { registerMicroApps, start } from 'qiankun';
// 注册微应用
registerMicroApps([{name: 'app_one',           //子项目名称entry: '//localhost:5173', // 子项目地址container: '#app_one',  // 在主项目中配置子项目将要显示的位置节点activeRule: '/',       //激活规则,可以通过设置不同的路由进行激活props: {} //传参       //子项目 主项目传参的通道}]);// 启动 qiankunstart({prefetch:'all' // 预加载});

二、子项目

1、安装@sh-winter/vite-plugin-qiankun

npm i @sh-winter/vite-plugin-qiankun

2、main.js配置

  • Vue3.x
import './assets/main.css'
import { createApp } from 'vue'
import App from './App.vue'import { exportLifeCycleHooks, qiankunWindow } from '@sh-winter/vite-plugin-qiankun/dist/helper'
function render() {const app = createApp(App)app.mount('#app1') //此处的id和html中一致,最好不要与主项目的一致,以免冲突
}
exportLifeCycleHooks({bootstrap() {// do nothing.},mount(props) {render(props.container);},unmount() {app?.unmount();}
})
if (!qiankunWindow.__POWERED_BY_QIANKUN__) {render();
}

3、vite.config.js配置

  • Vue3.x
import {qiankunPlugin, transformAssetUrl } from '@sh-winter/vite-plugin-qiankun'
import { name as packageName } from './package.json'
export default defineConfig({base: `/${packageName}/`,plugins: [vue({template: {compilerOptions: {nodeTransforms: [transformAssetUrl]}}}),qiankunPlugin({ packageName })],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))}},})

三、问题解决

1、可能出现报错信息:
在这里插入图片描述
问题分析:一般实在网络较慢的时候出现,意思就是还没有加载好没法显示
问题解决:使用v-if绑定子项目显示的位置,在mounted后进行显示即可

四、一键启动

在两个项目同级目录执行npm init -y,并创建index.js文件
在这里插入图片描述
1、package.json配置:

{"name": "qiankun","version": "1.0.0","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1","dev":"node ./index.js" //在根目录执行npm run dev走这里,去执行index.js文件中的方法},"keywords": [],"author": "","license": "ISC","description": "","dependencies": {"child_process": "^1.0.2"}
}

2、index.js文件内容

const childProcess = require('child_process')
const path = require('path')
// 配置每个应用的路径
const filePath = {'app_one': path.join(__dirname, './app_one'),main: path.join(__dirname, './vue-project')
}// cd 子应用的目录 npm run dev 启动项目
function runChild () {Object.values(filePath).forEach(item => {//配置项目启动命令childProcess.spawn(`cd ${item} && npm run dev`, { stdio: "inherit", shell: true })})
}
runChild()

启动成功:
在这里插入图片描述

最终效果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/406257.html

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

相关文章

健身房管理系统--论文pf

TOC springboot542健身房管理系统--论文pf 第1章 绪论 1.1选题动因 当前的网络技术,软件技术等都具备成熟的理论基础,市场上也出现各种技术开发的软件,这些软件都被用于各个领域,包括生活和工作的领域。随着电脑和笔记本的广泛…

C语言之字节对齐

目录 1. 引言2.字节对齐原理3.字节对齐应用4.总结 1. 引言 字节对齐属于编译器的内容,决定数据实际的存放方式。主要有两个作用:1.优化数据储存,减少空间浪费 2.增加数据读取速率,本文将于以上两点展开,简述字节对齐的…

VLM调研记录

Visual Autoregressive Modeling: Scalable Image Generation via Next-Scale Prediction 北大和字节团队的一篇VLM,在生成任务上,用GPT范式,声称在FID上超过了DIT,SD3和SORA。开源。首先是multi-scale的VQVAE,然后是…

一起学习LeetCode热题100道(52/100)

52.腐烂的橘子(学习) 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返…

PHP轻创推客集淘客地推任务平台于一体的综合营销平台系统源码

🚀轻创推客,营销新纪元 —— 集淘客与地推任务于一体的全能平台🌐 🌈【开篇:营销新潮流,轻创推客引领未来】 在瞬息万变的营销世界里,你还在为寻找高效、全面的营销渠道而烦恼吗?&…

【数据安全】数据中心数据安全整体解决方案(Doc完整版)

第一章 解决方案 1.1 建设需求 1.2 建设思路 1.3 总体方案 信息安全系统整体部署架构图 1.3.1 IP准入控制系统 1.3.2 防泄密技术的选择 1.3.3 主机账号生命周期管理系统 1.3.4 数据库账号生命周期管理系统 1.3.5 双因素认证系统 1.3.6 数据库审计系统 1.3.7 数据脱敏…

图数据库查询语言 Cypher 基础

Cypher 是 Neo4j 的声明式查询语言,为属性图提供了富有表现力和高效的查询,是一种成熟和直观的图数据库查询语言。在图上执行任何类型的创建、读取、更新或删除(CRUD),Cypher 是 Neo4j 的主要接口。 本文介绍了 Cypher 基础知识,…

软件测试用例的编写(六)

软件测试用例 定义 测试用例(TestCase)是为项目需求而编制的一组测试输入,执行步骤,以及预期结果,以便测试某个程序是否满足客户需求 可以总结为:每一个测试点的数据设计和步骤设计 – 对测试点的细化 作…

大数据技术之Zookeeper安装 (2)

目录 下载地址 本地模式安装 1)安装前准备 2)配置修改 3)操作 Zookeeper 配置参数解读 Zookeeper 集群操作 集群规划 解压安装 配置服务器编号 配置 zoo.cfg 文件 集群操作 Zookeeper 集群启动停止脚本 创建脚本 增加脚本执行权限 …

在线问诊平台开发指南:基于互联网医院系统源码的实现路径

今天,小编将详细讲解如何通过互联网医院系统源码开发在线问诊平台。 一、在线问诊平台的需求分析 在线问诊平的核心目标是通过互联网技术,实现患者与医生之间的远程交流与诊断。因此,在开发过程中,首先需要明确平台的核心功能需求…

将 hugo 博客搬迁到服务器

1. 说明 在 Ubuntu 22.04 上使用 root 账号,创建普通账号,并赋予 root 权限。 演示站点:https://woniu336.github.io/ 魔改hugo主题: https://github.com/woniu336/hugo-magic 2. 服务器配置 建立 git 用户 adduser git安装 git sudo apt …

SpringBoot笔记01

第1章 Spring Boot概要 1.1 SpringBoot介绍 随着动态语言的流行(Ruby、Scala、Node.js), Java的开发显得格外的笨重;繁多的配置、低下的开 发效率、复杂的部署流程以及第三方技术整合难度大。 在上述环境下,Spring Boot由此诞生…

光伏检测气象站:实时监测:高效管理

随着全球对可再生能源需求的日益增长,光伏发电作为清洁能源的重要组成部分,其重要性日益凸显。然而,光伏发电的效率与稳定性受气象条件影响显著,如光照强度、温度、湿度、风速等因素均能直接影响光伏板的发电效率。因此&#xff0…

巧用PDF转Markdown插件,在扣子(Coze)手搓一个有趣好玩的AI Bot

近期,TextIn团队开发的PDF转Markdown插件已经上架Coze平台。 短短的时间内,已经有不少朋友愉快地和我们的工具开始玩耍。今天我们抛砖引玉,介(an)绍(li)几种PDF转Markdown插件的有趣玩法&#…

阅读、分析和维护高质量开源软件有感——小计一笔

目录 一、问题分析 软件开发问题分析 动机 学什么 目的 二、要求 阅读 理解 运用 分析 评估 认知 三、案例选择 MiNotes”开源软件 方式 实践支撑软件工具 操作流程 应该学到的知识 学习过程 四、任务与输出 1.阅读开源软件 2.标注开源软件 3.分析开源…

路径规划 | 灰狼算法+B样条曲线优化无人机三维路径规划(Matlab)

目录 效果一览基本介绍程序设计参考文献 效果一览 基本介绍 灰狼算法B样条曲线优化无人机三维路径规划(Matlab) 群智能路径规划算法。三维灰狼算法(GWO)加B样条曲线优化的matlab代码。无人机(UAV)路径规划…

二叉树剪枝

1、题目解析 2、算法解析 本题使用二叉树的后序遍历,通过递归函数将左右子树进行处理,得到处理结果后,判断左右结果以及自身的val判断是否需要剪枝。 3、代码编写 class Solution { public:TreeNode* pruneTree(TreeNode* root) {if(root …

SpringBoot项目多线程实现定时任务-只需要三步

众所周知,项目中需要使用定时任务发布的需求时非常常见的,例如:数据同步,清理垃圾文件,清理过期用户等需求,可能需要我们定时去清理数据。 但是我们如果集成xxl-job,Quartz,spring …

Leetcode每日刷题之1004.最大连续1的个数|||(C++)

1.题目解析 本题的目的是找出能最多翻转k个0的情况下最长连续的1的个数,并且这是一个二进制数组,只存在0和1,翻转0就是将0变为1 2.算法原理 首先我们想到的一定是暴力枚举,即依次列举出在最多翻转k个0的情况下所有连续1的子数组的…

odoo17 网站内容存在哪了

odoo17 网站内容存在哪了 查数据库内容,却没找到 没理解这些内容到底存在了哪里呢