记录一次无界微前端的简单使用

记录一次无界微前端使用

无界微前端

https://wujie-micro.github.io/doc/

因为使用的是vue项目主应用和次应用都是 所以用的封装的。
https://wujie-micro.github.io/doc/pack/

主应用

安装 选择对应的版本

js 复制代码
# vue2 框架
npm i wujie-vue2 -S
# vue3 框架
npm i wujie-vue3 -S

你可以在主应用新建一个路由

js 复制代码
<template>
  <WujieVue width="100%" height="100%" name="logs" :url="url" :props="props" :sync="true"></WujieVue>
</template>

<script setup>
import { useUserStore } from "@/stores/modules/user";
import { computed, ref } from "vue";
import { useAppStore } from "@/stores/modules/app";

const appStore = useAppStore();
const appNow = computed(() => appStore.nowApp);
const userStore = useUserStore();
const url = "http://xxxx";
const props = computed(() => {
  return {
    xxx
  };
});
</script>

<style></style>

props是共享的数据

子应用

不需要安装依赖包

js 复制代码
if (window.__POWERED_BY_WUJIE__) {
  let app: any;
  window.__WUJIE_MOUNT = () => {
    app = createApp(App);
    app.use(ElementPlus);
    app.use(pinia);
    app.use(router);
    app.mount("#app");

    const globalStore = useGlobalStore();
    globalStore.$reset();
    nextTick(() => {
     
      if (window.$wujie) {
        const { token, userInfo, nowApp, appList } = window.$wujie.props;
        // xxxx 处理主应用共享的数据
      }
    });
  };
  window.__WUJIE_UNMOUNT = () => {
    app.unmount();
  };
  /*
    由于vite是异步加载,而无界可能采用fiber执行机制
    所以mount的调用时机无法确认,框架调用时可能vite
    还没有加载回来,这里采用主动调用防止用没有mount
    无界mount函数内置标记,不用担心重复mount
  */
  window.__WUJIE.mount();
}else{
// 正常amount
}

nginx配置

因为会跨域 所以静态资源要允许跨域,子应用添加允许主应用跨域。

js 复制代码
    location ~ .*\.(js|css)?$
    {
       # 全局跨域设置
    add_header 'Access-Control-Allow-Origin' 'xxxx';
        expires      12h;
        error_log /dev/null;
        access_log /dev/null;
    }

其他的 比如接口什么的,服务端也要放通对应的地址。或者都交给nginx。

相关推荐
ZC跨境爬虫4 分钟前
Playwright进阶操作:鼠标拖拽与各类点击实战(含自定义拖拽实例)
前端·爬虫·python·ui
小江的记录本7 分钟前
【RabbitMQ】RabbitMQ核心知识体系全解(5大核心模块:Exchange类型、消息确认机制、死信队列、延迟队列、镜像队列)
java·前端·分布式·后端·spring·rabbitmq·mvc
心静财富之门8 分钟前
《前端零基础入门:HTML + CSS + JavaScript 全套速查表(详细版 + 实例)》
前端·javascript·python
星空10 分钟前
前端--A_4--HTML表单
前端
We་ct21 分钟前
JS手撕:DOM操作 & 浏览器API高频场景详解
开发语言·前端·javascript·面试·状态模式·操作·考点
小江的记录本27 分钟前
【RocketMQ】RocketMQ核心知识体系全解(5大核心模块:架构模型、事务消息两阶段提交、回查机制、延迟消息、顺序消息)
linux·运维·服务器·前端·后端·架构·rocketmq
三万棵雪松30 分钟前
【Linux 物联网网关主控系统-Web部分(二)】
linux·前端·物联网
We་ct39 分钟前
LeetCode 137. 只出现一次的数字 II:从基础到最优的两种解法详解
前端·数据结构·算法·leetcode·typescript·位运算
星空41 分钟前
前端--A_3--HTML区块_块元素与行内元素
前端·html
如意猴43 分钟前
【前端】001 前端初识——数字世界的门面
前端