首页 > 其他分享 >微前端 qiankun

微前端 qiankun

时间:2023-11-29 17:38:16浏览次数:29  
标签:__ vue 前端 qiankun 应用 props App

三个项目,一个管理端,两个微前端

文档地址 https://qiankun.umijs.org/zh

普通项目管理端安装qiankun     npm i qiankun -S

管理端main.js

import Vue from 'vue'
import App from './App.vue'

Vue.config.productionTip = false
// 引入qiankun
import {
	registerMicroApps,
	start
} from 'qiankun';
const apps = [{
		name: 'vueApp', // 应用的名字
		entry: 'http://localhost:8081/', // 默认会加载这个html 解析里面的js 动态的执行 (子应用必须支持跨域)fetch
		container: '#vue', // 容器名(此项目页面中定义的容器id,用于把对应的子应用放到此容器中)
		activeRule: '/vue', // 激活的路径
		props: {
			a: 1
		} // 传递的值(可选)
	},
	{
		name: 'reactApp',
		entry: 'http://wfios.com:1667/dqGxpt_qt/', // 默认会加载这个html 解析里面的js 动态的执行 (子应用必须支持跨域)fetch
		container: '#react',
		activeRule: '/react',
	}
]

registerMicroApps(apps); // 注册应用
start({
	prefetch: false // 取消预加载
});
new Vue({
	render: h => h(App),
}).$mount('#app')

 管理端app.vue

<template>
  <div id="app">
	  <a href='/vue'>vue应用1</a>
	  <a href='/react'>应用2</a>
    <div id="vue"></div>
    <div id="react"></div>
  </div>
</template>
 
<style lang="less">
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
}
nav {
  padding: 30px;
  a {
    font-weight: bold;
    color: #2c3e50;
 
    &.router-link-exact-active {
      color: #42b983;
    }
  }
}
</style>

  子应用1 

import Vue from 'vue';
import App from './App.vue';
 
Vue.config.productionTip = false;
 
let router = null;
let instance = null;
function render(props = {}) {
  const { container } = props; 
  instance = new Vue({
    render: (h) => h(App),
  }).$mount(container ? container.querySelector('#app') : '#app');
}
 
 
 
if (window.__POWERED_BY_QIANKUN__) { // 动态添加publicPath
  __webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__;
}
if (!window.__POWERED_BY_QIANKUN__) { // 默认独立运行
  render();
}
 
// 父应用加载子应用,子应用必须暴露三个接口:bootstrap、mount、unmount
// 子组件的协议就ok了
export async function bootstrap() {
  console.log('[vue] vue app bootstraped');
}
export async function mount(props) {
  console.log('[vue] props from main framework', props);
  render(props);
}
export async function unmount() {
  instance.$destroy();
  instance.$el.innerHTML = '';
  instance = null;
  router = null;
}

  子应用1 vue.config.js

const { name } = require('./package');
module.exports = {
  lintOnSave: false,  	
  devServer: {
    port: 8081,
    headers: {
      'Access-Control-Allow-Origin': '*',
    },
  },
  configureWebpack: {
    output: {
      library: `${name}-[name]`,
      libraryTarget: 'umd', // 把微应用打包成 umd 库格式
      //jsonpFunction: `webpackJsonp_${name}`,// 取决于webpack的版本(可不要,但小于webpack5.x则需要加上)
    },
  }
};

  子应用1 router.js

const router = new VueRouter({
    mode: 'history',
    base: window.__POWERED_BY_QIANKUN__ ? "/vue" : "/",//基础路径
    routes
})

  

标签:__,vue,前端,qiankun,应用,props,App
From: https://www.cnblogs.com/mrt-yyy/p/17865394.html

相关文章

  • 前端路由及两种实现方式
    路由的概念来源于服务端,在服务端中路由描述的是URL与处理函数之间的映射关系,当然也会处理不同的URL来展示不同的视图界面。随着Ajax的盛行,无刷新交互成为了当下的主流,我们更希望在无刷新的情况下完成不同URL来展示不同的视图界面,即在一个页面中完成路由的切换(俗称:单页面应用开......
  • get /post后端获取前端int型数据
    首先post能传过去数据其次传过去的数据全部都是string类型的所以我们如果想要获取int型数据就得把传过去的string转换成int型转换只能用下面这个函数其他的试过了都不行必须用Integer.parsenInt其他的valueof之类的都不可以,这个错误主要是我向后端数据库提交数据的时候插入的数......
  • 记录后端不同请求方式的接口,使用vue3框架下的前端axio请求不同写法
    一.后端接口:@GetMapping("/index")publicResponseResultindex(){..} 前端接口:indexInfo().then(res=>{if(res.data.code==200){ElNotification({message:res.data.data.msg||"加载成功",ty......
  • VUE前后端分离项目,前端打包,可配置修改环境变量文件,无需再次打包
      懒得打字了,直接截图,转载自:https://blog.csdn.net/CSDN_33901573/article/details/130603111        ......
  • 前端歌谣的刷题之路-第一百零五题-监听对象
     前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷本题目源自于牛客网微信公众号前端小歌谣题目......
  • 从前端的角度来梳理微信支付(小程序、H5、JSAPI)的流程
    因业务需要,开发微信支付功能,涉及三种支付方式:JSAPI支付:微信内网页支付,需要开通微信服务号小程序支付:在小程序中支付,需要开通小程序H5支付:在手机浏览器(出微信内网爷)中网页支付使用微信支付的前提必开通微信商户号,要使用到那种的支付方式要前需在商户平台开通(要审核)。支付......
  • vue前端截图
    <template><divclass="bigbox"> <divclass="box"ref="imageTest"> <divclass="boxTop"> 13653197159邀请您注册 <spanstyle="color:#5FFFB7;">金猫矿池</span> </div>......
  • 飞码LowCode前端技术之画布的设计
    简介本章节从精准定位、分层设计、异步组件、拖拽四个方面分析飞码画布设计。一、精准定位设计飞码画布是一个套件,可对外提供画布能力。精准定位有两种情况,一是目标组件无子组件,而是目标组件有子组件。无子组件:目标组件分为支持与不支持放子组件两种情况。有子组件:鼠标相对于......
  • 前端歌谣的刷题之路-第一百题-控制动画
     前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷本题目源自于牛客网微信公众号前端小歌谣题目......
  • 前端歌谣的刷题之路-第一百零二题-全选
     前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷本题目源自于牛客网微信公众号前端小歌谣题目......