无界,wujie的使用

这篇具有很好参考价值的文章主要介绍了无界,wujie的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

无界,wujie的使用,vue2,wujie,wujieVue,前端,前端框架,Powered by 金山文档
// 这里就不写公司的应用域名了,用百度做例子,到时候把自己子应用的域名写上就行了
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文件

无界,wujie的使用,vue2,wujie,wujieVue,前端,前端框架,Powered by 金山文档
// 子应该环境域名
export const ENV_DOMAIN_MT_MAP = {
  development: 'http://localhost:1025', // 开发/测试环境 例如:dev.baidu.com
  staging: 'http://localhost:1025', // 预发环境 例如:staging.baidu.com
  production: '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-input
                placeholder="请输入内容"
                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": "*" // 开启应用间的跨域访问},文章来源地址https://www.toymoban.com/news/detail-556073.html

  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的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端实现websocket通信讲解(vue2框架)

    前言 :最近接到的需求是前端需要实现一个全局告警弹窗,如果使用ajax请求http接口只能用定时器定时去请求是否有告警,这样既消耗资源,又不能实时监测到告警信息。所以这个时候就可以采用websocket来实现通信,因为websocket不用请求一次才响应一次,它可以实现服务器主

    2024年02月12日
    浏览(37)
  • vue(32) : win10创建vue2基础前端框架

    vue2 element-ui axios 含接口调用示例 开发工具为HBuilderX 3.7.3 等待创建项目 代理后端配置如下, 三个test改成相同的uri前缀即可, uri该签注会代理到后端 proxy: {       // 代理test开头的uri       \\\'/test\\\': {         target: \\\'http://192.168.1.1:8080\\\', // 后端地址         changeOrigin: true, // 开启代

    2024年02月06日
    浏览(39)
  • 关于前端框架vue2升级为vue3的相关说明

    一些框架需要升级 当前(202306) Vue 的最新稳定版本是 v3.3.4 。Vue 框架升级为最新的3.0版本,涉及的相关依赖变更有: 前提条件:已安装 16.0 或更高版本的Node.js(摘) 必须的变更:核心库vue@23、路由vue-router@34、状态管理vuex@34 构建工具链: Vue CLI Vite(摘) 状态管理: Vuex Pi

    2024年02月15日
    浏览(51)
  • ❤ 全面解析若依框架vue2版本(springboot-vue前后分离--前端部分)

    一般在vue项目public文件夹下命名为“favicon.ico” ❤ 处理步骤 第1步:将图标重命名为“favicon.ico”,并放在项目根目录 下。 第2步:然后在index.html中引入,title中修改页面标题。 第3步:修改build文件夹下 webpack .dev.conf.js和webpack.prod.conf.js文件中的内容。 第五步:重新已经成功

    2024年02月12日
    浏览(56)
  • Jeecg开发框架前端VUE2数据页面与后端数据库交互实现

    ​ JeecgBoot 是一款基于代码生成器的 低代码 开发平台,零代码开发!采用前后端分离架构:SpringBoot2.x,Ant DesignVue,Mybatis-plus,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! JeecgBoot引领新的开发模式(Online Coding模式- 代码生成器模式- 手工MERGE智能开发

    2024年02月11日
    浏览(44)
  • 微前端qiankun架构 (基于vue2实现)使用教程

    node -- 16+ @vue/cli -- 5+ 创建文件夹qiankun-test。 使用vue脚手架创建主应用main和子应用dev   安装 qiankun: 使用qiankun: 在 utils 内创建 微应用文件夹 microApp,在该文件夹内创建微应用出口文件 index.js,路由文件 microAppRouter,配置函数文件 microAppSetting。 路由文件 microAppRouter 配置函数文件

    2023年04月19日
    浏览(49)
  • 前端系列——vue2+高德地图web端开发(使用和引入)

    本人非专业前端开发,其实是搞后端的,但是正好接了一个项目需要我负责全栈,所以写了这个系列的文章,如果以后项目可以开源我会放出来的 本次我们要实现的是vue2+高德地图的网页开发 本文需要大家系统学过vue以及初步了解高德地图的情况下理解起来会十分省力 高德

    2024年01月16日
    浏览(48)
  • vue2使用rtsp视频流接入海康威视摄像头(纯前端)

    海康威视官方的RTSP最新取流格式如下: rtsp://用户名:密码@IP:554/Streaming/Channels/101 用户名和密码 IP就是登陆摄像头时候的IP(笔者这里IP是192.168.1.210) 所以笔者的rtsp流地址就是 rtsp://用户名:密码@192.168.1.210:554/Streaming/Channels/101 1.1关闭 萤石云的接入 1.2 调整视频编码为H.264 在此下载

    2024年04月26日
    浏览(57)
  • 【前端】在Vue2中使用Vanta.js炫酷动态背景(全屏背景)

    官网:https://www.vantajs.com/ 由于博主在参考官网及官方GitHub进行应用时遇到一些问题,因此写了该篇博客,以避免大家因找Bug而浪费时间,方便快速的应用。 注意版本 Vue的版本如下 “vue”: “^2.6.14” 渲染容器 导包 方法 完整代码: 完整代码: 参加颜色参数 如果报错:‘X

    2024年02月11日
    浏览(49)
  • 手把手教你使用vue2搭建微前端micro-app

    ​ 本文主要讲述新手小白怎么搭建micro-app,几乎是每一步都有截图说明。上手应该很简单。 这段时间在网上找了很多有关微前端相关的知识,起初本来是想着先搭建一个single-spa,但是奈何网上能找到的内容都是千篇一律。我也是搭了好久没搭出来。不知道为啥,反正就是一

    2024年01月20日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包