微前端(无界)入门

主应用通过props给子应用传值

父子应用通过eventBus通信

通过路由同步实现记录子应用的路由状态

主应用

main.ts:

import './assets/main.css'

import { createApp } from 'vue'
import { createPinia } from 'pinia'
import WujieVue from 'wujie-vue3'

import App from './App.vue'
import router from './router'

const app = createApp(App)

app.use(createPinia())
app.use(router)
app.use(WujieVue)

app.mount('#app')

index.vue:

<script setup>
import { onMounted, ref } from 'vue'
import WujieVue from 'wujie-vue3'
import './index.css'

const { bus } = WujieVue

const url = ref('http://localhost:3003/')
const props = ref({
  count: 0
})

const handleAdd = () => {
  props.value.count++
  bus.$emit('msg', {
    count: props.value.count
  })
}

onMounted(() => {
  bus.$on('msg-from-child', (payload) => {
    props.value.count = payload.count
  })
})
</script>

<template>
  <div>
    <button @click="() => handleAdd()">{{ props.count }}</button>
  </div>
  <div class="m-wujie">
    <WujieVue
      width="100%"
      height="100%"
      name="child"
      :url="url"
      :props="props"
      :sync="true"
    ></WujieVue>
  </div>
</template>

子应用

Index.vue:

<script setup>
import { ref, onMounted } from 'vue'
import './index.css'

const count = ref(0)
const handleGetProps = () => {
  console.log(window, window.$wujie.props.count)
}

const handleGetAdd = () => {
  count.value++
  window.$wujie?.bus.$emit('msg-from-child', {
    count: count.value
  })
}

onMounted(() => {
  window.$wujie?.bus.$on('msg', function (payload) {
    count.value = payload.count
  })
})
</script>

<template>
  <div class="m-home-wrap">
    <div class="m-home-toolbar">
      <button @click="() => handleGetProps()">获取props</button>
      <button @click="() => handleGetAdd()">{{ count }}</button>
    </div>
    <div class="m-home-demo"></div>
  </div>
</template>

<style></style>

效果:

参考链接:

https://www.yinaor.com/docs/front/micro/micro-intro

https://wujie-micro.github.io/doc/guide/sync.html 

人工智能学习网站

https://chat.xutongbao.top

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32 OTA需要注意问题

一、OTA设计思路&#xff08;问题&#xff09; 1、根据stm32f405 flash分布&#xff0c;最初将flash划分为四个区域&#xff0c;分别是Bootloader、APP1、APP2、参数区&#xff0c;设备上电后&#xff0c;进入Bootloader程序&#xff0c;判断OTA参数&#xff0c;根据参数来确定…

长方形边框 上方中间有缺口 css

<div class"text_6">大234234师掌4234柜</div><div class"text-wrapper_1"><span class"paragraph_1">四川慧创云戈科技有限公司推出的“大师掌柜”&#xff0c;是一个以餐饮外卖为切入口&#xff0c;专注实体小店新零售…

实验七 RTP、DSPP协议的配置

一、实验目的 掌握 RIP 动态路由协议的配置、诊断方法。 二、实验步骤 1、 运行 Cisco Packet Tracer 软件&#xff0c;在逻辑工作区放入两台路由器、两台工作站 PC&#xff0c;分别点击各路由器&#xff0c;打开其配置窗口&#xff0c;关闭电源&#xff0c;分别加入一个 2 …

PowerPivot-跨表取值

在PowerPivot中&#xff0c;跨表取值通常涉及创建关系和使用DAX&#xff08;数据分析表达式&#xff09;函数。 以下是一些基本步骤和常用的DAX函数&#xff0c;帮助你在PowerPivot中实现跨表取值&#xff1a; 步骤1&#xff1a;创建关系 加载数据&#xff1a;确保你已将需要…

吃透一道题day2:Java算法中的“如何找到给定字符串中的不同字符“

写在开头&#xff1a;很久没有开启有关算法的内容了,在正式开启开启今天这段算法之旅之前,跟大家谈一谈上周五歌手也就是第二期我的一些直观感受:相比第一期(chante moore的if i aint got you和faouzia的crazy带给我的经验)没有任何特别的惊艳之处,很平淡甚至可以说是心如止水,…

E. Binary Deque[双指针好思维题]

Binary Deque 题面翻译 有多组数据。 每组数据给出 n n n 个数&#xff0c;每个数为 0 0 0 或 1 1 1 。你可以选择从两边删数&#xff0c;求至少删几个数才可以使剩下的数总和为 s s s 。 如果不能达到 s s s &#xff0c;则输出 − 1 -1 −1 。 题目描述 Slavic h…

性能测试(基于Jmeter)

性能指标 RT&#xff08;Response Time&#xff09;响应时间&#xff1a;指的是用户从客户端发起请求开始到服务端返回结束&#xff0c;整个过程所耗费的时间 HPS&#xff08;Hits Per Second&#xff09;&#xff1a; 每秒点击次数&#xff0c;单位&#xff1a;次/秒 TPS&am…

Element-Plus中表格及分页功能

导入Element-Plus 具体步骤如下&#xff1a;&#xff08;内容参照官网&#xff1a;安装 | Element Plus&#xff09; # 选择一个你喜欢的包管理器# NPM $ npm install element-plus --save# Yarn $ yarn add element-plus# pnpm $ pnpm install element-plus 在main.js文件的…

树与图的深度优先遍历

数和图的存储方式与遍历 数和图的存储方式&#xff1a; 一般有两种 树是一种特殊的图&#xff08;即无环联通图&#xff09;。所以下面只讲图。 图的话分为两种&#xff1a;①有向图&#xff08;边是有方向的&#xff1a;a➡️b&#xff09;和 ②无向图&#xff08;边是无方…

安全设计 | Microsoft 威胁建模工具Threat Modeling Tool安装、使用及威胁生成原理详解(文末附样例)

1. 概览 微软威胁建模工具&#xff08;Threat Modeling Tool&#xff09;是 Microsoft 安全开发生命周期 (SDL&#xff0c;Security Development LifeCycle) 的核心要素。 当潜在安全问题处于无需花费过多成本即可相对容易解决的阶段&#xff0c;软件架构师可以使用威胁建模工…

断开自定义模块与自定义库的链接

断开自定义模块与自定义库的链接 1、断开模块与库的链接 1、断开模块与库的链接 如果摸个库文件添加到模型中&#xff0c;无法“Disable Link”时&#xff0c;可以使用save_system命令进行断开到模型中用户定义的库模块的链接&#xff1b; 参考链接&#xff1a; 传送门 save…

Python词法和语法分析工具库之ply使用详解

概要 在编程语言的开发、编译器的实现和数据解析等领域,词法分析和语法分析是关键的技术。Python的ply库是一个功能强大的词法和语法分析工具,基于经典的Lex和Yacc工具实现。ply库为开发者提供了一种简单且高效的方法,用于定义词法规则和语法规则,从而实现对自定义语言和数…

现货白银交易点差是多少

现货白银投资者通过交易平台进行买卖操作的时候&#xff0c;平台会以“点差”的形式向投资者收取一定的交易费用。所谓的点差&#xff0c;也就是平台所报出的买入价和卖出价之间的固定差额&#xff0c;由于现货白银的报价是“成对”的&#xff0c;所以点差的存在也是其交易模式…

【SpringMVC】_SpringMVC项目返回HTML与JSON

目录 1. SpringMVC项目返回HTML页面 2. SpringMVC项目返回JSON 2.1 程序演示 2.2 关于响应的Content-Type 2.2.1 接口为对象 2.2.2 接口为String 2.2.3 接口为Map 本专栏已介绍&#xff1a; 返回静态页面&#xff1a; 【Spring MVC】_SpringMVC项目返回静态页面_mvc 返…

2024了,还有人在问为甚死锁?

大家好&#xff0c;我是javapub。 接上篇提到了锁&#xff0c;《InnoDB有哪些锁类型》。这么多的锁&#xff0c;你有遇到过死锁吗&#xff1f; 死锁是在事务数据库中会发生的一种特殊现象&#xff0c;多个事务在执行过程中&#xff0c;相互等待对方持有的资源&#xff0c;导致…

软件游戏缺失d3dcompiler_47.dll如何解决,简单有效的五种解决方法分享

在现代游戏中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“缺少d3dcompiler47.dll文件”。这个问题通常会导致游戏无法正常运行或出现崩溃的情况。为了解决这个问题&#xff0c;我总结出了以下五种解决方法。希望这些方法能够帮助到遇到相同问题的玩家。 …

论文解读之A General-Purpose Self-Supervised Model for Computational Pathology

一、前言 目前&#xff0c;有很多无知者认为计算机在疾病诊断上超过了人类&#xff0c;他们的理解是计算机在美丽国的某个什么医师测评上得分超过了人类。这比较可笑和无知。 笔者认为&#xff1a;病理图像的病症复杂、种类繁多&#xff0c;同时数据集很少并且标注极为困难。…

学习笔记——动态路由协议——OSPF(简介)

一、 OSPF简介 1、前言 由于静态路由由网络管理员手工配置&#xff0c;因此当网络发生变化时&#xff0c;静态路由需要手动调整&#xff0c;这制约了静态路由在现网大规模的应用。 动态路由协议因其灵活性高、可靠性好、易于扩展等特点被广泛应用于现网。在动态路由协议之中…

数字工厂管理系统可以和哪些软件集成

随着工业4.0时代的到来&#xff0c;数字工厂管理系统已成为制造业转型升级的核心驱动力。数字工厂管理系统通过集成各种软件和技术&#xff0c;实现了生产过程的数字化、网络化和智能化&#xff0c;大大提高了生产效率和管理水平。本文将探讨数字工厂管理系统可以与哪些软件集成…

在table表格中如何给tr的每一个子元素加haver效果

效果图&#xff1a; 核心代码&#xff1a; tbody tr :hover {background-color: #d5d5d5; } 改变子元素 tbody tr:hover {background-color: #d5d5d5; } 改变父元素 两段代码看起来一样&#xff0c;其实不一样&#xff0c;其中差了一个空格字符 希望可以帮到大家