wujie无界微前端框架初使用

先说一下项目需求:将单独的四套系统的登录操作统一放在一个入口页面进行登录,所有系统都使用的是vue3,(不要问我为啥会这样设计,产品说的客户要求)

                                                        

1.主系统下载wujie

我全套都是vue3,所以直接下vue3的

npm i wujie-vue3 -S

官网地址:Vue组件封装 | 无界

2.主系统的main.js中引入wujie

// 导入 WuJie.js 的 Vue3 集成
import WujieVue from "wujie-vue3";
const { bus, setupApp, preloadApp, destroyApp } = WujieVue;
 // 配置子系统入口
setupApp({
  name: 'sub-app',
  url: 'http://localhost:8081', // 子应用的 URL
  attrs: {
    src: 'http://localhost:8081',
  },
});

const app = createApp(App)
app.use(WujieVue);
app.mount('#app')

3.配置子应用入口页面路由并且新建这个页面

router.js文件

新建页面路径

4.pre.vue页面代码

<template>
  <div class="pre">
    <WujieVue
      width="100%"
      height="100%"
      :name="appName"
      :url="appUrl"
      :sync="true"
      :props="appProps"
      :attrs="appAttrs"
      :alive="true"
    />
  </div>
</template>

<script setup>
import { computed } from 'vue';
import { useRoute } from 'vue-router';
import  WujieVue  from 'wujie-vue3';
// 动态获取路由参数,匹配子应用
const appName = '/pre';
const appUrl = 'http://localhost:8081';
const appProps = { user: 'admin' };
const appAttrs = { "data-custom-attr": "example" }; // 自定义属性
</script>

<style lang="scss" scoped>
.pre{
    height: 100%;
}
</style>
主应用已经配置好了,接下来是子应用 

打开子应用的vite.config.js文件

origin和上面主应用的appUrl要一样,开启允许跨域

server: {
      cors: true, // 允许跨域
      port: 8081,
      // host: true,
      host: '0.0.0.0', // 确保可以通过 IP 访问
      origin: 'http://localhost:8081', // 子应用的访问地址(与主应用匹配)对应appUrl
      open: true,
      headers: {
        'Access-Control-Allow-Origin': '*', // 明确允许主应用跨域访问
      },
      proxy: {
        // https://cn.vitejs.dev/config/#server-proxy
        '/dev-api': {
           target: 'http://localhost:8080',
          changeOrigin: true,
          rewrite: (p) => p.replace(/^\/dev-api/, '')
        }
      }
    },

最后试一下传参

子应用的main.js文件中直接打印,子应用我使用的是ruoyi框架,具体插入位置在下图,随便放就好,不影响,另外这个接收的参数是在主应用里面传入的,参考第4步的步骤,如果你是每一步都照着我的操作来的话就不用再去检查了

console.log(window.$wujie.props,'===')

子应用打印

主应用传参的位置

浏览器打印结果如下

完结撒花

### 关于无界(Wujie)微前端的实际应用案例 #### 应用场景概述 在实际开发过程中,采用无界(Wujie)微前端框架能够有效解决大型单页应用程序面临的诸多挑战。该框架允许不同技术栈构建的应用程序无缝集成在一个统一的界面下工作[^1]。 #### 生命周期管理 针对基于 React 技术栈实现的子应用,其生命周期方法可以通过特定的方式进行改造以适应 Wujie前端环境的要求。具体来说,当检测到全局变量 `__POWERED_BY_WUJIE__` 存在时,则定义挂载(`__WUJIE_MOUNT`) 和卸载 (`__WUJIE_UNMOUNT`) 函数来控制组件渲染逻辑;反之则按照常规方式启动应用[^5]。 ```javascript if (window.__POWERED_BY_WUJIE__) { window.__WUJIE_MOUNT = () => { ReactDOM.render( <React.StrictMode> <App /> </React.StrictMode>, document.getElementById("root") ); }; window.__WUJIE_UNMOUNT = () => { ReactDOM.unmountComponentAtNode(document.getElementById("root")); }; } else { ReactDOM.render( <React.StrictMode> <App /> </React.StrictMode>, document.getElementById("root") ); } ``` #### 去中心化通信机制 为了支持跨多个独立部署的服务之间高效协作,无界引入了一种名为 EventBus 的事件总线模式实例,并将其注入至主应用以及各个子应用之中。这使得所有参与方都能够以去中心化的方式相互通信而不必依赖额外的消息传递中间件服务[^3]。 #### 开发者指南与最佳实践 遵循官方提供的指导原则并积极研究社区内分享的成功案例有助于加速项目的落地实施过程。同时,深入了解项目文档和技术博客中的实践经验对于确保顺利推进至关重要[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值