vue2 使用wujie的具体步骤

主应用使用了vue2+webpack,子应用使用了vue2+webpack。

  1. 安装

# vue2 框架
npm i wujie-vue2 -S
# vue3 框架
npm i wujie-vue3 -S

2,引入 在main.js中引入

1,在src下创建hostMap.js

// 这里就不写公司的应用域名了,用百度做例子,到时候把自己子应用的域名写上就行了
const map = {// 子应用的测试环境'http://localhost:1025': 'http://localhost:1025',//dev-baidu.baidu.cn/',// 子应用的预发环境'http://localhost:1025': 'http://localhost:1025',// 子应用的生产环境'http://localhost:1025': 'http://localhost:1025',
}export default function hostMap (host) {if (process.env.NODE_ENV === 'production') return map[host]return host
}

2,在src目录下创建constants->sub-app.js文件

// 子应该环境域名
export const ENV_DOMAIN_MT_MAP = {development: 'http://localhost:1025', // 开发/测试环境 例如:dev.baidu.comstaging: 'http://localhost:1025', // 预发环境 例如:staging.baidu.comproduction: 'http://localhost:1025' // 生产环境 例如:baidu.com
}

3,在main.js中引入


// 这里是有多个子应用的时候,可以把子应用的地址配置放在一个文件,导入进来就行了
import {  ENV_DOMAIN_MT_MAP } from '@/constants/sub-app.js'
// 这个文件主要是配置一些子应用的测试环境地址
import hostMap from './hostMap.js'
// 微服务
import WujieVue from "wujie-vue2";
const { setupApp, preloadApp } = WujieVue // 使用到无界API
Vue.use(WujieVue);
// 创建应用,主要是设置配置,preloadApp、startApp的配置基于这个配置做覆盖
setupApp({name: '大数据平台', // 这里这个名称要和展示子应用页面设置的名称一样哦!!!!url: hostMap(ENV_DOMAIN_MT_MAP[process.env.NODE_ENV]), // 子应用的域名链接
})
preloadApp({name: '大数据平台', // 这里这个名称要和展示子应用页面设置的名称一样哦!!!!url: hostMap(ENV_DOMAIN_MT_MAP[process.env.NODE_ENV]), // 子应用的域名链接
})

3,主应用使用

<template><!-- <div class="past_class"><WujieVue name="micro" url="http://localhost:1025/data/" /></div> --><div><div class="container"><h1>父界面</h1><el-inputplaceholder="请输入内容"v-model="value"class="input-with-select"><el-button slot="append" @click="emitInput" icon="el-icon-search"></el-button></el-input></div><div class="container"><h1>嵌套界面</h1><!-- //组件穿透传值 data值  method方法propsMethod --><WujieVue width="100%" height="100%" name="micro" :props="{data:'propsdata',method:{propsMethod}}"  :url="mtUrl" /></div></div>
</template>
<script>
import hostMap from '@/hostMap'
import wujieVue from "wujie-vue2";
import { ENV_DOMAIN_MT_MAP } from '@/constants/sub-app.js'
window.globalMainValue = '我是主应用全局变量'
export default {data() {return {value: '',mtUrl: '',// 链接top: "连接已失效",bottom: "请重新获取有效链接"};},methods: {emitInput(e) {console.log(e, 112312312312);},propsMethod(e){console.log(1111111, window.document.querySelector("iframe[name=micro]").contentWindow.globalMicroValue)},},mounted() {wujieVue.bus.$on('microEmit', (val) => {this.value = val})this.mtUrl = `${hostMap(ENV_DOMAIN_MT_MAP[process.env.NODE_ENV])}/data/`console.log(this.mtUrl)},
};
</script>
<style lang="scss" scoped></style>

4,子应用使用如下

<template><div class="app-container home"><!-- <div class="logii-bc"><el-image:src="require('@/assets/logo/logo-bc.png')"fit="cover"></el-image></div> --><div class="container"><h1>{{ data === "" ? "hi" : data }}</h1><el-button @click="doPropsData">获取父应用通过props传递的值</el-button><el-button @click="doPropsMethod">执行父应用通过props传递的方法</el-button><el-button @click="microEmit">向父应用传值</el-button></div></div>
</template><script>
export default {name: "Index",data() {return {// 版本号version: "3.6.1",};},mounted() {window.$wujie.bus.$on("input", (val) => (this.data = val));window.globalMicroValue = "我是子应用全局变量";console.log(2222222, window.parent.globalMainValue);},methods: {goTarget(href) {window.open(href, "_blank");},doPropsMethod() {window.$wujie.props.method.propsMethod();},doPropsData() {this.data = window.$wujie.props.data;console.log(this.data )},microEmit() {window.$wujie.bus.$emit("microEmit", "micro data");},},
};
</script>

如果子应用跨域需要在vue.config.js中引headers: {"Access-Control-Allow-Origin": "*" // 开启应用间的跨域访问},

  devServer: {host: '0.0.0.0',port: port,open: true,proxy: {[process.env.VUE_APP_BASE_API]: {target:xxxxx //本地changeOrigin: true,pathRewrite: {['^' + process.env.VUE_APP_BASE_API]: ''}}},headers: {"Access-Control-Allow-Origin": "*" // 开启应用间的跨域访问},disableHostCheck: true},

无界,wujie的使用相关推荐

  1. 无界(wujie)微前端实现及三种通信方式介绍

    一.对比 之前介绍过前段时间比较流行的微前端框架qiankun,虽然实现了微前端的理念,但是也暴露出很多缺点,比如官网上讲到的四点: 基于路由匹配,无法同时激活多个子应用,也不支持子应用保活 改造成本 ...

  2. 微前端:无界wujie简单上手

    背景 之前用过了微前端框架 qiankun 并剖析了其原理,今天我们来试试另一个同样厉害的微前端框架无界,本文只是讲如何使用,原理部分后面再更新. 无界支持多种项目的接入,如 react.vue 等 ...

  3. 前端微服务无界实践 | 京东云技术团队

    一.前言 随着项目的发展,前端SPA应用的规模不断加大.业务代码耦合.编译慢,导致日常的维护难度日益增加.同时前端技术的发展迅猛,导致功能扩展吃力,重构成本高,稳定性低.因此前端微服务应运而生. 前端 ...

  4. 【微前端】1443- 将微前端做到极致-无界方案

    微前端已经是一个非常成熟的领域了,但开发者不管采用哪个现有方案,在适配成本.样式隔离.运行性能.页面白屏.子应用通信.子应用保活.多应用激活.vite 框架支持.应用共享等用户核心诉求都或存在问题,或 ...

  5. vue接入微前端无界框架总结

    写在前面: 这里就不介绍为什么使用微前端,真正做前端同学应该都知道的.本文主要是做个总结我在公司项目中实际使用微前端,项目已经在公司生产上运行了4个月左右了,目前没有发现什么问题,在此记录下,方便以后 ...

  6. 微前端--无界方案之官网demo操作说明

    下载运行 deom下载 官方demo在GitHub(访问有问题,需要设置,本人未设置) 链接:https://github.com/Tencent/wujie (别处给的,也能用) pnpm下载 其中 ...

  7. 有界阻塞队列ArrayBlockingQueue和无界阻塞队列LinkedBlockingQueue

    ArrayBlockingQueue和LinkedBlockingQueue最大的区别是一个是有界无界,各有优劣. 先看实例代码: main函数起2个线程模拟生成消费者 import java.uti ...

  8. 年薪40-100万 | 北京思无界科技招聘三维重建算法工程师

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 公司信息 北京思无界科技有限公司成立于2017年3月,专注于家居行业数字化建设.坚持以"数字 ...

  9. 京东王笑松:7FRESH是“无界零售”理论的业务践行

    过去一年,"无界零售"概念在中国零售舞台上大放异彩,中国的零售市场的变化也引来了国际市场更加强烈的关注.相较之下,一衣带水的邻国日本则凭借着工匠精神.极致服务等传统优势继续扮演着零 ...

最新文章

  1. 网页制作中如何自定义网页图标
  2. C# .net 对图片操作
  3. php在菜单栏里加子菜单,WordPress后台添加子菜单add_submenu_page()
  4. Meta:绝对没有威胁要离开欧洲市场
  5. byte 类型_java知识总结(九):基本类型转换
  6. 在使用Git提交代码的时候犯了个低级错误
  7. JSP中乱码问题,你真的理解了么?
  8. Java:计算立方体的体积和底面积
  9. ug如何复制面_学习UG,要从最基础的做起,初学者必备40条技巧
  10. 编写测试报告,及测试报告模板
  11. 纹宁指纹支持谷歌浏览器指纹采集和指纹比对
  12. 条信息流oCPC调研报告
  13. Mac系统官方资料使用与记录
  14. 11.8号软基2.2.2
  15. 超级账本Hyperledger Fabric的使用
  16. 新茶饮、新烘焙的2021:亏损与食安问题未解,元宇宙和第三空间又来凑热闹
  17. (六)图数据neo4j之cypher(一)
  18. 平安好医生掉队,是选了更难的那条路
  19. TypeError: elem.nodeName is undefined
  20. [ZZULIOJ] 1205: 你爱我么?

热门文章

  1. 什么是SPECCInt(SPECCPUInt)、SPECCFP?
  2. Verilog 中的参数化建模
  3. 网站被同行恶意攻击了怎么办
  4. python爬取文献代码_使用python爬取MedSci上的影响因子排名靠前的文献
  5. 初中信息技术(Python) 源代码
  6. 思未尽,行致远丨记 IBM 成立 109周年
  7. linux 日历 农历
  8. 从命令行输入一个字符串!要求从中随机选择6个字符组成验证码!
  9. 爬取微信公众号文章方案汇总
  10. OVITO使用(1)——如何进行缺陷分析