乾坤 微前端和其他区别
时间: 2024-03-07 10:39:02 浏览: 150
乾坤是一种前端微服务框架,它是基于现代前端技术实现的一种微前端解决方案。与传统的单体应用不同,乾坤将一个大型应用程序划分为多个独立的子应用程序,每个子应用程序都可以单独开发、构建、部署和运行。这种架构风格可以使大型应用程序更容易维护和扩展,并且可以提高应用程序的性能和稳定性。
相比于其他前端微服务框架,乾坤具有以下优点:
1. 稳定性:乾坤采用了一套完善的沙箱机制,可以避免子应用程序之间的冲突和影响,从而保证了整个应用程序的稳定性。
2. 灵活性:乾坤支持多种前端框架,如React、Vue、Angular等,可以根据具体需求选择适合的框架。
3. 一体化:乾坤提供了一套完整的解决方案,包括路由、通信、打包等多个方面,可以快速构建一个完整的微前端应用程序。
4. 兼容性:乾坤支持多个浏览器和移动设备,可以满足不同用户的使用需求。
总的来说,乾坤是一种强大的前端微服务框架,可以帮助开发人员快速构建高性能、稳定的微前端应用程序。
相关问题
乾坤微前端react
### 乾坤微前端框架与React结合使用教程
#### 创建React子应用
为了创建一个可以作为微前端使用的React子应用,推荐使用`create-react-app`来初始化项目环境[^1]。这一步骤简化了许多配置工作,使得开发者能够专注于业务逻辑的开发。
```bash
npx create-react-app my-microfrontend-app
cd my-microfrontend-app
npm start
```
#### 配置生命周期函数
为了让React应用成为qiankun兼容的应用程序,需要定义特定的生命週期钩子——`bootstrap`, `mount`, 和 `unmount`。这些方法允许主应用程序控制子应用的行为,在加载、渲染和卸载阶段执行必要的操作[^3]。
```javascript
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
const render = (props) => {
const container = document.getElementById('root');
const root = ReactDOM.createRoot(container);
root.render(<App />);
};
// 初始化时调用
export async function bootstrap() {
console.log('React app bootstrapped');
}
// 加载组件并将其挂接到DOM树上
export async function mount(props) {
render(props);
}
// 卸载组件前清理资源
export async function unmount() {
const container = document.getElementById('root');
const root = ReactDOM.createRoot(container);
root.unmount();
}
```
#### 注册子应用至QianKun Shell Application
最后一步是在壳应用中注册这个新创建的React子应用。通过向shell application传递相应的参数完成这一过程,包括名称、入口URL和其他选项[^4]。
```javascript
import { registerMicroApps, start } from 'qiankun';
registerMicroApps([
{
name: 'my-react-subapp',
entry: '//localhost:3000', // 子应用的服务地址
container: '#subapp-container',
activeRule: '/react'
}
]);
start(); // 启动qiankun
```
乾坤微前端,子应用如何将方法暴露给主应用
乾坤微前端是一种基于Web的技术架构,它允许将独立的应用(子应用)作为小部件嵌入到主应用中。子应用想要将方法暴露给主应用,通常通过以下几个步骤实现:
1. **API接口设计**:首先,在子应用中,你需要设计一些可供外部调用的接口,这些接口通常是RESTful风格或者GraphQL等标准的API形式。
```javascript
// 子应用中的接口示例
app.service('myService', {
getData: function(param) { ... }
});
```
2. **通信机制**:乾坤微前端通常依赖于跨域资源共享(CORS)、JSONP或者其他同源策略允许的方式来进行数据交互。如果是SPA框架,可能会使用如Fetch API、axios等库。
3. **暴露接口**:子应用需要配置使其提供的API能够通过某种方式(例如Webpack的externals或H5-Loader)暴露给主应用引用。
4. **主应用调用**:在主应用中,通过加载子应用并获取暴露的API,可以像调用本地函数一样调用子应用的方法:
```javascript
// 主应用中调用子应用方法
window.myService.getData(someParam).then(result => {...})
```
注意,由于安全限制,实际操作时可能需要主应用先向子应用发送请求,由子应用返回一个代理函数供主应用调用。
阅读全文