react16接入微前端到vue项目总结

1.vue主应用配置

// mian.js
const apps = [
    {
   
        name: 'react16',
        entry: '//localhost:3888', // 默认会加载这个html 解析里面的js 动态的执行 (子应用必须支持跨域)fetch
        container: '#react16',
        activeRule: '/rfmtools/#/react16'
    }
];
registerMicroApps(apps); // 注册应用
start(); //

1.1 url路径要和activeRule匹配上
在这里插入图片描述
1.2 主应用开个路由承载微应用
在这里插入图片描述
1.3 注意官网介绍 接入的微应用页面有子路由 要加*
在这里插入图片描述
1.4 开一个承载子应用的页面
在这里插入图片描述
命令改造

"scripts": {
   
        "install-all": "npm-run-all --serial install:*",
        "install:vue3": "cd qiankun/vue3 && yarn install",
        "install:react16": "cd qiankun/react16 && yarn install",
        "start": "npm-run-all --parallel start:*",
        "start:hf": "vue-cli-service serve",
        "start:vue3": "cd qiankun/vue3 && yarn serve",
        "start:react16": "cd qiankun/react16 && yarn dev",
        "build": "npm-run-all --parallel build:*",
        "dev": "vue-cli-service serve",
        "build:hf": "vue-cli-service build",
        "build:vue3": "cd qiankun/vue3 && yarn build",
        "build:react16": "cd qiankun/react16 && yarn build",
   }

2.微应用 react项目接入

// index.tsx
/// <reference path="index.d.ts" />
import './public-path';
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import * as serviceWorker from './serviceWorker';

function render
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
接入 umi3 和接入其他 React 应用一样,只需要在主应用中安装 `@umijs/plugin-qiankun` 插件,并在子应用中使用 `qiankun` 的 `registerMicroApps` 方法注册子应用。 具体步骤如下: 1. 在主应用中安装 `@umijs/plugin-qiankun` 插件: ```bash yarn add @umijs/plugin-qiankun -D ``` 2. 在主应用中的 `.umirc.ts` 或 `config/config.ts` 文件中配置 `qiankun` 插件: ```typescript export default { // ... plugins: ['@umijs/plugin-qiankun'], qiankun: { master: { // 主应用配置 }, }, }; ``` 3. 在主应用中使用 `qiankun` 的 `registerMicroApps` 方法注册子应用: ```typescript import { registerMicroApps, start } from 'qiankun'; import React from 'react'; import ReactDOM from 'react-dom'; function render({ appContent, loading }) { const container = document.getElementById('app-container'); ReactDOM.render( <div> {loading && <p>Loading...</p>} <div dangerouslySetInnerHTML={{ __html: appContent }} /> </div>, container, ); } registerMicroApps([ { name: 'sub-app', entry: '//localhost:8000', container: '#sub-app-container', activeRule: '/sub-app', }, ]); start(); ``` 4. 在子应用中使用 `react-app-rewired` 对 `create-react-app` 脚手架进行配置。 由于 `create-react-app` 脚手架默认隐藏了 webpack 配置,我们需要使用 `react-app-rewired` 来暴露 webpack 配置。具体做法可以参考官方文档:https://umijs.org/plugins/qiankun#%E5%AD%90%E5%BA%94%E7%94%A8 5. 在子应用中导出一个 render 方法,用于子应用启动时挂载到主应用中: ```typescript import React from 'react'; import ReactDOM from 'react-dom'; function render(props: any) { const { container } = props; ReactDOM.render(<App />, container); } export default render; ``` 6. 在子应用中使用 `qiankun` 的 `start` 方法启动子应用: ```typescript import { start } from 'qiankun'; import render from './render'; // 导出生命周期钩子函数 export const bootstrap = async () => {}; export const mount = async (props: any) => { render(props); }; export const unmount = async () => {}; // 启动子应用 start(); ``` 以上就是在 micro-app 前端接入 umi3 react 的基本步骤,需要注意的是,在子应用中同样需要安装 `qiankun` 包和 `react` 包,并且在开发时需要同时启动主应用和子应用,才能看到前端的效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值