qiankun 子应用怎么使用主应用useContext
时间: 2024-11-03 10:13:55 浏览: 40
Qiankun 是一个用于构建多端应用(如单页应用和服务端渲染应用)的框架,它通过提供一种叫做“context bridge”的机制来实现子应用对主应用共享数据和功能的访问。当子应用需要使用主应用的 `useContext` 时,通常会按照以下几个步骤操作:
1. **创建主应用 context**: 主应用中,在你需要共享的数据或功能所在的地方(通常是自定义 hook 或者组件),定义一个高阶组件(HOC)或者 Context API 的 Provider。
```jsx
// 主应用 - Context.js
import { createContext, useContext } from 'react';
const MyApplicationContext = createContext();
function AppWithMyContext() {
// 提供 context 数据
const myData = ...; // 这里是你要传递给子应用的数据
return (
<MyApplicationContext.Provider value={myData}>
{/* 子应用将通过 this.context获取值 */}
<ChildApp />
</MyApplicationContext.Provider>
);
}
```
2. **在子应用中接收 context**:
子应用在需要使用这个 context 信息的地方,可以使用 `useContext` Hook 来订阅:
```jsx
// 子应用 - ChildApp.js
import React from 'react';
import { useContext } from 'react';
function ChildComponent() {
const myData = useContext(MyApplicationContext); // 获取主应用传来的 context 数据
return (
<div>
{myData ? <p>子应用使用到了主应用的数据: {myData}</p> : <p>未接收到数据</p>}
</div>
);
}
```
3. **注意生命周期管理**:
子应用可能会有自己的生命周期,比如服务端渲染(SSR)。在这种情况下,你需要确保在适当的时候(比如 `componentDidMount` 或 `getDerivedStateFromProps`) 初始化并订阅 context。
阅读全文