React In Blazor - DidUpdate with js-event-bus

js-event-bus, react in blazor, message bus, mediator,

引言

在之前 React In Blazor - DidUpdate 使用 mediator-jsarrow-up-right 實作 message bus,此例改用較新觀念製作的 js-event-busarrow-up-right 來實作。

參考文章

相關文章

React + r2wc in Blazor

React In Blazor

React In Blazor - DidUpdate

js-evnet-bus 關鍵知識

導入 js-evnet-bus 模組可用 npm 也支援以 Browser global 模式使用。本例為了在 Blazor 與 React 兩邊都互通使用 Browser global 模式。


開發環境

  • IDE: Visual Studio 2022

  • 平台: NET8

  • 骨架: Blazor Web App - InteractiveServer

  • 前端: React.v18.2

  • bundler: webpack.v5.88

關鍵程式碼紀錄

應用情境,當 Blazor 端元件 props 有異動時,以 DidUpdate 行為改變相應 React 端元件狀態。不希望以 DidMount 行為來更新,因為某些應用情境以 DidMount 行為更新會失真。

先註冊全域的 MessageBus。

發送端,在 Blazor 端元件有 props-down 異動。

發送端,在 Blazor 元件

接收端,React 元件接到後以 DidUpdate 行為刷新 UI

webpack 打包進入點

React 端元件本體

Active Diagram

第一次呈現 react 元件時走 render() 函式。

之後當 props有異動 f_dirty 時,把新 props 送到 messageBus 再轉送到 react 元件。


沒圖沒真象

(EOF)

Last updated