关于无界在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

相关文章

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

Python中yield的用法和实际应用示例

《Python中yield的用法和实际应用示例》在Python中,yield关键字主要用于生成器函数(generatorfunctions)中,其目的是使函数能够像迭代器一样工作,即可以被遍历,但不会... 目录python中yield的用法详解一、引言二、yield的基本用法1、yield与生成器2、yi

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.