qiankun简单的引用子组件实例。

前言:父子应用均采用vue cli进行处理。
父应用安装乾坤依赖。如果需要乾坤根据路由进行子应用加载的。可以根据官方把乾坤配置到main.js入口文件上。这里直接手动引入

父组件业务代码:

<template>
  <div>
    <div id="qiankun_parent">qiankun-parent</div>
    <div id="qiankun_son1" style="height:100px; width:100%"/>
  </div>
</template>

<script>

import { loadMicroApp } from 'qiankun';
export default {
  name: 'App',
  setup(){
    // 引入子应用,挂载到qiankun_son1
    loadMicroApp({
      name: 'qiankun_son1',
      entry: '//localhost:8087',
      container: '#qiankun_son1',
    });
  },
  components: {
  }
} 
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: white;
  margin-top: 60px;
}
#qiankun_parent{
  background-color: red;
}
</style>

子应用不需要安装乾坤依赖,只需要向外抛出三个生命周期函数,处理跨域问题,处理webpack打包配置。

子组件main.js:

import "./public-path"
import { createApp } from 'vue'
import App from './App.vue'

// eslint-disable-next-line no-undef
console.log('判断是否使用了乾坤的变量:',window.__POWERED_BY_QIANKUN__);

/**
 * bootstrap 只会在微应用初始化的时候调用一次,下次微应用重新进入时会直接调用 mount 钩子,不会再重复触发 bootstrap。
 * 通常我们可以在这里做一些全局变量的初始化,比如不会在 unmount 阶段被销毁的应用级别的缓存等。
 */
 export async function bootstrap() {
  console.log('bootstraped');
}

/**
 * 应用每次进入都会调用 mount 方法,通常我们在这里触发应用的渲染方法
 */
export async function mount() {
  console.log('mount');
}

/** 
 * 应用每次 切出/卸载 会调用的方法,通常在这里我们会卸载微应用的应用实例
 */
export async function unmount() {
  console.log('unmount');
}
/**
 * 可选生命周期钩子,仅使用 loadMicroApp 方式加载微应用时生效
 */
 export async function update(props) {
  console.log('update props', props);
}

console.log('create qiankun-son1 App');
createApp(App).mount('#qiankun_son1_app')

子组件vue.config.js:

// const { defineConfig } = require('@vue/cli-service')
const {name} = require('./package');

module.exports = {
  // transpileDependencies: true,
  devServer:{
    // 配置端口
    port:8087,
    // 配置跨域
    headers: {
      'Access-Control-Allow-Origin': '*',
    },
  },
  // 配置webpack
  configureWebpack: {
    output: {
      library: `${name}-[name]`,
      libraryTarget: 'umd',
    },
  },
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值