当前位置: 首页 > news >正文

微前端无界 项目使用记录

1预期目标和场景

一个vue框架开发的应用,需要使用另一个系统的页面。
通俗来说,就是在一个web应用中独立的运行另一个web应用

2 技术支持

微前端处理方案:无界
无界官网: https://wujie-micro.github.io/doc/guide/

CSDN 参考文档

3 方案可行性测试

3.1项目技术

主系统:绩效考核系统 vue2+webpack
子系统可以是vue2 vue3 react 或angular

3.2案例测试
目标
vue2作为主系统,展现子系统vue2中的页面,并传值。
具体步骤
第一步:主系统上安装无界插件

1.	# vue2 框架
2.	npm i wujie-vue2 -S

第二步 引入主系统 在main.js中引入

// 无界部分
import WujieVue from "wujie-vue2";
Vue.use(WujieVue)const { setupApp} = WujieVue;
setupApp({name: "vue2",url:"http://10.100.21.21:7200",exec: true,
});new Vue({el: '#app',router,components: { App },template: '<App/>'
})

第三步 主系统新建一个页面 test.vue
并以props方式传值

<template><!--单例模式,name相同则复用一个无界实例,改变url则子应用重新渲染实例到对应路由 -->
<WujieVue 
width="100%" 
height="100%" 
name="vue2" 
:url="vue2Url" 
:sync="true" 
:props="{ data: {page:'我是主系统的参数',type:1} }">>
</WujieVue></template><script>export default {data() {return {vue2Url: "http://10.100.21.21:7200",};},methods: {},};</script><style lang="less" scoped></style>

第四步 另一台电脑创建子系统vue2

main.js中配置

if (window.__POWERED_BY_WUJIE__) {let instance;window.__WUJIE_MOUNT = () => {const router = new VueRouter({ base, routes });instance = new Vue({ router, render: (h) => h(App) }).$mount("#app");};window.__WUJIE_UNMOUNT = () => {instance.$destroy();};
} else {new Vue({ router: new VueRouter({ base, routes }), render: (h) => h(App) }).$mount("#app");
}

Vue.config配置跨域

// vue.config.js/*** @type {import('@vue/cli-service').ProjectOptions}*/
module.exports = {publicPath: "./",devServer: {headers: {"Access-Control-Allow-Origin": "*","Access-Control-Allow-Headers": "*","Access-Control-Allow-Methods": "*",},port: "7200",},transpileDependencies: ["sockjs-client",],
};

App.vue中,展示传值
在这里插入图片描述

最终测试效果
在这里插入图片描述

4 附注

本例测试了无界的核心功能,引入页面,和传值。其他功能和能力,请参考无界官网API。
https://wujie-micro.github.io/doc/guide/
目前无界子系统,可以是目前主流前端vue,react angular12,详见官网。

http://www.lryc.cn/news/177379.html

相关文章:

  • CDH 6.3.2升级Flink到1.17.1版本
  • 基于谷歌Transeformer构建人工智能问答系统
  • 【2023年11月第四版教材】第15章《风险管理》(合集篇)
  • python常见面试题四
  • stm32无人机-飞行力学原理
  • Java括号匹配
  • 自动化测试-友好的第三方库
  • 基于微信小程序的火锅店点餐订餐系统设计与实现(源码+lw+部署文档+讲解等)
  • 亿图脑图新版本支持思维导图一键生成PPT、音视频等格式,办公提效再升级
  • Arthas:Java调试利器使用
  • Nuxt 菜鸟入门学习笔记七:SEO 和 Meta 设置
  • 栈(Stack)和队列(Queue)
  • LeetCode 75 part 06 栈
  • 19.组合模式(Composite)
  • 应用在IPM接口隔离领域中的光电耦合器
  • rust引用
  • Android AMS——Activity Pause(八)
  • 【数据结构】冒泡排序,快速排序的学习知识总结
  • ubuntu终端 中文显示 改为 英文显示
  • ChatGPT Prompting开发实战(十二)
  • springboot整合eureka
  • 记录一个 GUI 库的对比测试结果
  • 解决 MyBatis-Plus 中增加修改时,对应时间的更新问题
  • 【力扣2057】值相等的最小索引
  • 计算机图像处理:图像轮廓
  • 解决java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.的错误
  • 软件设计中常见的设计模式
  • 为什么我的remix没有injected web3
  • 第1章 数据结构绪论
  • 现代 GPU 容易受到新 GPU.zip 侧通道攻击