2024-05-28|閱讀時間 ‧ 約 23 分鐘

React ViewRerender架構

    本人工作環境是在公司現有react架構下開發前端頁面,讓使用著可以使用頁面上各種工具與Threejs 3D場景互動。

    為了讓組件與功能程式分的更清楚以更好維護,會將程式分成頁面組件與功能程式兩類。(上圖紅色區域為功能程式,綠色區域為頁面組件區域)


    組件的setState一般情況又只能傳給自己的子組件,不能傳給外部,但功能程式很常需要更新頁面組件。

    例如App組件頁面顯示DetectClickPoint類別物件的滑鼠點擊坐標,但DetectClickPoint改變坐標後,App組件不會主動刷新顯示。


    為了讓程式更靈活,於是將重要的react setState曝露出來,讓全局呼叫使用。

    例如上面的例子App組件有新增forceRerender方法,可以把forceRerender曝露出來,讓每個地方都能刷新App組件。

    再稍微規劃一下,把曝露的react setState都整理到一個ViewRerender.js內,就能方便靈活地在任何地方修改各種組件狀態了。


    分享此做法原因在於快速方便且靈活,尚未考慮效能等影響,還請大家多多指點。

    demo範例:ViewRerender架構Demo - StackBlitz

    分享至
    成為作者繼續創作的動力吧!
    從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

    s_SoNg的沙龍 的其他內容

    發表回應

    成為會員 後即可發表留言
    © 2024 vocus All rights reserved.