Closed QzCurious closed 8 months ago
我在改的時候發現其實 filterPopularPokemon
根本沒被用到,但就放這裡當範例。
然後整個程式看起來有很多地方都可以套用上述邏輯去改,可以再練習看看。
修正錯誤的內容:
- 換一個方式看,如果有n個 components 需要用到
filterBestPokemon
時:
- ~n個 components 都呼叫
filterPopularPokemon
,那filterPopularPokemon
其實多執行了不必要的 n-1 次~ 用useMemo
仍是會執行 n 次
原
useEffect
邏輯以useMemo
取代會更合適:useEffect
寫法在狀態上會經過 "2個階段",但useMemo
只會有 "1個階段"useEffect
filterBestPokemon
=[]
filterPopularPokemon
->useEffect
->setFilterBestPokemon
filterBestPokemon
=[/* 被篩選過得資料 */]
useMemo
bestDamage
,popularPokemon
,storeAllPokemon
同步,沒有額外的 "更新動作"filterPopularPokemon
filterBestPokemon
時:filterPopularPokemon
,那filterPopularPokemon
其實多執行了不必要的 n-1 次~ 用useMemo
仍是會執行 n 次filterPopularPokemon
,那就會很難決定是哪1個 component 去呼叫filterPopularPokemon
我沒有去動原有的邏輯,這邊只是展示更合適的寫法