ReactJS useContext 經驗之迷思

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原生功能,有以下

優點

  1. 小項目減少維護難度,幾個global state不應該用library解決
  2. 來對人才技能需求不高,識用ReactJS就能維護
  3. 減少學習新Library學習成本
  4. 執行速度比較快,原生支援
  5. React增加平台時,例如VR眼鏡,時原本支援就知夠

缺點

  1. 大型項目維護人數多,寫法不一樣,這時候需要統一協作時間,反而建議使用Redux, Zusland等state management
  2. 因為可以隨意加context 包起需要使用state的component,所以context到處有在大型項目容易發生,增加debug和維護難度

useContext 應該使用Object {} 或Array []包著多個variables去改善update問題。

其他筆記

因為項目未完全知道需求,所以採用Scrum 1 week來做項目管理和改善需求和實際開發和設計問題進行檢討。

香港團隊一般用Jira管理,Jira 支持SCRUM和Kanban兩種Agile項目管理。

盡可能遵從以下原則
KISS
SOLID

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值