TL;DR
useContext 應該使用Object {} 或Array []包著多個variables去改善update問題,和Root Component多個Provider問題
問題
就在發生了需求增加或改變需求時,增加多個context引致維護和效能問題。
早期
每個context 只包著1個state,然後之後跟隨項目的開發人員跟隨著開發,結果已有5-6個context當普通state用
結果
root level components 包著很多Context Provider。
解決
暫時集合多個同類state在context去改善維護成本
State Management Library
在早發早期其實並沒有考慮到這麼多state應該global,所以用Context去解決,不需要用Redux等state management library。
我認為盡量使用React原生功能,有以下
優點
- 小項目減少維護難度,幾個global state不應該用library解決
- 來對人才技能需求不高,識用ReactJS就能維護
- 減少學習新Library學習成本
- 執行速度比較快,原生支援
- React增加平台時,例如VR眼鏡,時原本支援就知夠
缺點
- 大型項目維護人數多,寫法不一樣,這時候需要統一協作時間,反而建議使用Redux, Zusland等state management
- 因為可以隨意加context 包起需要使用state的component,所以context到處有在大型項目容易發生,增加debug和維護難度
useContext 應該使用Object {} 或Array []包著多個variables去改善update問題。
其他筆記
因為項目未完全知道需求,所以採用Scrum 1 week來做項目管理和改善需求和實際開發和設計問題進行檢討。
香港團隊一般用Jira管理,Jira 支持SCRUM和Kanban兩種Agile項目管理。
盡可能遵從以下原則
KISS
SOLID