微前端qiankun框架的主应用和微应用搭建
参考:qiankun官网
主应用
主应用不限技术栈,只需要提供一个容器 DOM,然后注册微应用并 start 即可。
React主应用
创建React
项目:
$ npx create-react-app main-app
安装路由:
$ npm i -S react-router-dom
改写App.js
,为微应用提供容器:
import logo from './logo.svg';
import './App.css';
+ import {Link} from 'react-router-dom';
function App() {
return (
<div className="App">
<header className="App-header">
// ...
</header>
// 跳转到微应用
+ <Link to="/sub-app-react">to sub-app-react</Link>
// 微应用容器
+ <div id="sub-app"></div>
</div>
);
}
export default App;
在index.js
中配置react-router
:
import { BrowserRouter, Route } from 'react-router-dom';
ReactDOM.render(
- <React.StrictMode>
- <App />
- </React.StrictMode>,
// 使用history模式
+ (<BrowserRouter>
+ <Route path="/" component={App}></Route>
+ </BrowserRouter>),
document.getElementById('root')
);
安装qiankun
:
$ yarn add qiankun # 或者 npm i qiankun -S
在index.js
中注册微应用并启动,增加如下代码:
import {
registerMicroApps, start } from 'qiankun';
registerMicroApps([
{
name: 'reactApp',
entry: '//localhost:3000',
container: '#sub-app', // 与App.js提供的容器id一致
activeRule: '/sub-app-react', // 与微应用的路由base路径一致
},
{
name: 'vueApp',
entry: '//localhost:8080',
container: '#sub-app',
activeRule: '/sub-app-vue',
},
{
name: 'angularApp',
entry: '//localhost:4200',
container: '#sub-app',