🎋 竹子日誌

微前端系列(十一)

全域單例狀態,狀態管理器。

開始講到單例狀態就要稍微舉例一下什麼是單例狀態,其實就是泛指所有 Singleton 的物件。舉凡整個應用程式只有唯一的狀態,便都是這種狀態。比如「History Router」、「Locale Language」、「Browser Storage」都算是。這類的狀態不但可以進行微前端溝通,還會產生副作用。如果沒有良好的控制管理,都會引發許多狀態管理的麻煩。

那應該怎麼處理?

你會發現很容易發生「循環修改」,資料流的混亂。你根本搞不清楚誰先誰後,誰頭誰尾。

我其實最推薦的情境是,如果這個狀態修改是「同步」的,那就採用 Flux 管理,應用單向資料流去限制資料流向,集中所有副作用發生的節點。

但要控制好這個資料流並不簡單,因為很容易發生資料被到處修改的問題,所以做好攔截的通道口就是一門大問題。

留言