关于无界在vue中的应用

2024-04-17 14:20

本文主要是介绍关于无界在vue中的应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

无界的链接地址:https://wujie-micro.github.io/doc/
当我们配置好我们的页面是子应用的时候

1.处理好路由

1.对于我们定义的微前端服务,我们处理方式

if (v.frame === true && !v.children.length && !v.unNeedMicroView) {v.component = MicroView;v.meta.frameSrc = v.path;}

再针对于嵌入的功能,我们给他**MicroView组件,然后我们看看MicroView**组件在干什么
1.主应用,以我本地启动的项目 http://localhost:884/web/hazard-web/hazard/hiddenMap/index 为例子

<script setup lang="ts">
import wujieVue from "wujie-vue3";
const currentRoute = useRoute();
//拿到当前的路由
let metaUrl: any = unref(currentRoute.meta)?.frameSrc;  // web/hazard-web/hazard/hiddenMap/index
//判断如果有路由
if (metaUrl) {//开发环境调试if (import.meta.env.MODE == "development") {if (metaUrl.indexOf("/web/hazard") >= 0) {frameSrc.value = ("http://localhost:884" + metaUrl) as string;}}else{//正式环境地址替换frameSrc.value = (location.origin + metaUrl) as string;}
}
//针对于hash路由模式进行拼接处理
const urlArr = metaUrl.split("/web/syyj-admin-front");
frameSrc.value = (location.origin +`/web/syyj-admin-front/#${urlArr[1]}`) as string;</script>
<template><div class="frame"><!-- 主应用{{ frameSrc }} --> <WujieVuev-if="frameSrc && frameSrc.indexOf('/hazard') >= 0"ref="frameRef"width="100%"name="fdp":url="frameSrc":sync="true"class="frame-iframe"></WujieVue></div>
</template>   

2.主应用的事件通信

watch(currentRoute,(value) => {let src: any = value.meta?.frameSrc || "";console.log("主应用跳转", src); // 主应用跳转 /web/hazard-web/hazard/hiddenMap/indexwujieVue.bus.$emit("sys-router-change", src);},{immediate: true,}
);

子应用接受通信 App.vue

<script setup lang="ts">
const router = useRouter();
(window as any).$wujie?.bus.$on("sys-router-change", function (res) {console.log("你到hazard来了1:" + res); // 你到hazard来了1:/web/hazard-web/hazard/hiddenMap/indexlet data = res;if (res.indexOf("web/hazard-web") >= 0) {data = data.split("web/hazard-web")[1];router.replace({path: data,});}
});
onBeforeUnmount(() => {(window as any).$wujie?.bus.$off("sys-router-change", function (res) {console.log(res);});
});
</script><template><RouterView />
</template><style lang="scss" scoped>
.el-popup-parent--hidden {padding-right: 0 !important;overflow: hidden !important;
}
</style>

这篇关于关于无界在vue中的应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/912041

相关文章

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

CSS Padding 和 Margin 区别全解析

《CSSPadding和Margin区别全解析》CSS中的padding和margin是两个非常基础且重要的属性,它们用于控制元素周围的空白区域,本文将详细介绍padding和... 目录css Padding 和 Margin 全解析1. Padding: 内边距2. Margin: 外边距3. Padd

CSS will-change 属性示例详解

《CSSwill-change属性示例详解》will-change是一个CSS属性,用于告诉浏览器某个元素在未来可能会发生哪些变化,本文给大家介绍CSSwill-change属性详解,感... will-change 是一个 css 属性,用于告诉浏览器某个元素在未来可能会发生哪些变化。这可以帮助浏览器优化

CSS去除a标签的下划线的几种方法

《CSS去除a标签的下划线的几种方法》本文给大家分享在CSS中,去除a标签(超链接)的下划线的几种方法,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧... 在 css 中,去除a标签(超链接)的下划线主要有以下几种方法:使用text-decoration属性通用选择器设置:使用a标签选择器,将tex

前端高级CSS用法示例详解

《前端高级CSS用法示例详解》在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交互和动态效果的关键技术之一,随着前端技术的不断发展,CSS的用法也日益丰富和高级,本文将深... 前端高级css用法在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

在React中引入Tailwind CSS的完整指南

《在React中引入TailwindCSS的完整指南》在现代前端开发中,使用UI库可以显著提高开发效率,TailwindCSS是一个功能类优先的CSS框架,本文将详细介绍如何在Reac... 目录前言一、Tailwind css 简介二、创建 React 项目使用 Create React App 创建项目

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2