网站首页 > 技术文章 正文
1、主应用配置
1.1 安装qiankun插件
yarn add @umijs/plugin-qiankun -D
1.2 在主应用中配置子应用
在配置文件config中配置qiankun相关参数。
//config.ts
import micro from './micro';
const { REACT_APP_ENV } = process.env;
export default defineConfig({
qiankun: micro[REACT_APP_ENV || 'dev'],
}
在micro文件中根据开发环境、测试环境、生产环境分别配置不同的参数。
// micor.ts
export default {
dev: {
master: {
// 注册子应用信息
apps: [
{
name: 'vue', // 唯一 id
entry: '//localhost:7105', // html entry
},
],
},
},
test: {
master: {
// 注册子应用信息
apps: [
{
name: 'vue', // 唯一 id
entry: 'https://vue.XXXX.com', // html entry
},
],
},
},
prod: {
master: {
// 注册子应用信息
apps: [
{
name: 'vue', // 唯一 id
entry: 'https://vue.XXXX.cn', // html entry
},
],
},
}
}
1.3 通过路由绑定方式装载子应用
// routes.ts
export default [
name: 'vue',
path: MICRO_VUE_ACTIVE_RULE,
microApp: 'vue',
microAppProps: {
autoSetLoading: true,
},
routes: [
{
name: 'home',
path: `${MICRO_VUE_ACTIVE_RULE}/dashboard/analysis`,
microApp: 'vue',
},
{
name: 'about',
path: `${MICRO_VUE_ACTIVE_RULE}/about/index`,
microApp: 'vue',
},
]
]
2、子应用配置
2.1 在src目录下增加public-path.js文件
// public-path.js
if (window.__POWERED_BY_QIANKUN__) {
// eslint-disable-next-line no-undef
__webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__;
}
2.2 修改入口文件main.ts
// main.ts
import './public-path';
import Vue from 'vue';
import VueRouter from 'vue-router';
import App from './App.vue';
import routes from './router';
import store from './store';
Vue.config.productionTip = false;
let router = null;
let instance = null;
// 渲染
function render(props = {}) {
const { container } = props;
router = new VueRouter({
base: window.__POWERED_BY_QIANKUN__ ? '/app-vue/' : '/',
mode: 'history',
routes,
});
instance = new Vue({
router,
store,
render: (h) => h(App),
}).$mount(container ? container.querySelector('#app') : '#app');
}
// 独立运行时
if (!window.__POWERED_BY_QIANKUN__) {
render();
}
/**
* bootstrap 只会在微应用初始化的时候调用一次,下次微应用重新进入时会直接调用 mount 钩子,不会再重复触发 bootstrap。
* 通常我们可以在这里做一些全局变量的初始化,比如不会在 unmount 阶段被销毁的应用级别的缓存等。
*/
export async function bootstrap() {
console.log('[vue] vue app bootstraped');
}
/**
* 应用每次进入都会调用 mount 方法,通常我们在这里触发应用的渲染方法
*/
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;
}
2.3 修改vue.config.js配置
// vue.config.js
const { name } = require('./package');
module.exports = {
devServer: {
headers: {
'Access-Control-Allow-Origin': '*',
},
},
configureWebpack: {
output: {
library: `${name}-[name]`,
libraryTarget: 'umd', // 把微应用打包成 umd 库格式
jsonpFunction: `webpackJsonp_${name}`,
},
},
};
- 上一篇: 如何学习微信小程序开发?掌握这些编程语言和技能就够了!
- 下一篇: Alpine.js:轻量级前端框架
猜你喜欢
- 2024-11-30 微信小程序开发指引
- 2024-11-30 Alpine.js:轻量级前端框架
- 2024-11-30 如何学习微信小程序开发?掌握这些编程语言和技能就够了!
- 2024-11-30 小程序开发工具有哪些
- 2024-11-30 程序员上车啦!次世代开源AI前端框架来了,助你轻松开发AI应用
- 2024-11-30 初学者程序员要学好.Net,只要学习这几个框架就够了
- 2024-11-30 相比React、vue资源消耗更小,使用更简单的新一代前端框架Svelte
- 2024-11-30 微信小程序分包
- 2024-11-30 适用于Uniapp快速开发小程序的5个开源UI框架
- 2024-11-30 前端框架太多太复杂,HTMX助你回归简单编程
你 发表评论:
欢迎- 07-08记oracle日志挖掘实操&查询归档不正常增长情况(一)
- 07-08Oracle 伪列!这些隐藏用法你都知道吗?
- 07-08orcl数据库查询重复数据及删除重复数据方法
- 07-08重大故障!业务核心表被truncate删除,准备跑路……
- 07-08oracle数据恢复—oracle执行truncate命令误删除数据的数据恢复
- 07-08Oracle-rac 修改scanip(oracle 修改sequence cache)
- 07-08ORACLE RAC CDB和PDB切换(oracle数据库rac切换)
- 07-08Oracle rac haip作用(oracle rac的典型特征)
- 596℃几个Oracle空值处理函数 oracle处理null值的函数
- 590℃Oracle分析函数之Lag和Lead()使用
- 577℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 573℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 569℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 562℃【数据统计分析】详解Oracle分组函数之CUBE
- 549℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 542℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- 记oracle日志挖掘实操&查询归档不正常增长情况(一)
- Oracle 伪列!这些隐藏用法你都知道吗?
- orcl数据库查询重复数据及删除重复数据方法
- 重大故障!业务核心表被truncate删除,准备跑路……
- oracle数据恢复—oracle执行truncate命令误删除数据的数据恢复
- Oracle-rac 修改scanip(oracle 修改sequence cache)
- ORACLE RAC CDB和PDB切换(oracle数据库rac切换)
- Oracle rac haip作用(oracle rac的典型特征)
- 新手小白怎么学UI设计 推荐学习路线是什么
- 超实用!0基础UI设计自学指南(0基础学ui设计好就业吗)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端懒加载 (49)
- 前端获取当前时间 (50)
- 前端接口 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)