React mfe:mfe 之间的通信
React mfe: Communication between mfe's
对于 React 17,我正在尝试使用 mfe 演示。有一个 parent 容器,其中包含两个 mfe,Header 和 Auth。
当用户登录时,容器会收到通知。收到此通知后,header 组件需要收到有关此事件的通知并允许自行更新。
目前容器可以从 Auth-mfe 获取消息,但对 Header 组件的方式感到震惊用容器订阅这个。
目标是尽量减少或消除 mfe 之间的直接通信,如果需要,它必须通过 parent 容器。
我没有使用 redux 或任何第三方库来存储状态。用户 session 详细信息当前存储在 session 存储中 Auth-mfe。
容器 app.js 片段是
function App() {
return (
<BrowserRouter>
<div>
<Header notifySignedIn={notifySignedIn} />
<Suspense fallback={<Progress />}>
<Switch>
<Route path="/auth" render={props => (<AuthLazy onSignin={onSignin} {...props} /> )} />
</Switch>
</Suspense>
<Footer />
</div>
</BrowserRouter>
);
}
导出默认应用;
参考这个,我实现了从容器=> header 传递回调函数,然后header 将订阅函数传递回容器。这样就可以了。
//add the code in componentdidmount where you want to receive the data
window.addEventListener("event-name", (datarecieved)=> {
console.log(datarecieved.detail);
}, false);
//Create an event to pass data
let send-data = new CustomEvent("event-name", {detail: "Hi Suraj here"});
window.dispatchEvent(send-data);
对于 React 17,我正在尝试使用 mfe 演示。有一个 parent 容器,其中包含两个 mfe,Header 和 Auth。
当用户登录时,容器会收到通知。收到此通知后,header 组件需要收到有关此事件的通知并允许自行更新。
目前容器可以从 Auth-mfe 获取消息,但对 Header 组件的方式感到震惊用容器订阅这个。
目标是尽量减少或消除 mfe 之间的直接通信,如果需要,它必须通过 parent 容器。
我没有使用 redux 或任何第三方库来存储状态。用户 session 详细信息当前存储在 session 存储中 Auth-mfe。
容器 app.js 片段是
function App() {
return (
<BrowserRouter>
<div>
<Header notifySignedIn={notifySignedIn} />
<Suspense fallback={<Progress />}>
<Switch>
<Route path="/auth" render={props => (<AuthLazy onSignin={onSignin} {...props} /> )} />
</Switch>
</Suspense>
<Footer />
</div>
</BrowserRouter>
);
}
导出默认应用;
参考这个
//add the code in componentdidmount where you want to receive the data
window.addEventListener("event-name", (datarecieved)=> {
console.log(datarecieved.detail);
}, false);
//Create an event to pass data
let send-data = new CustomEvent("event-name", {detail: "Hi Suraj here"});
window.dispatchEvent(send-data);