「別重複造輪子」是效率的建議,不是學習的建議。三十天,我挑六個 React 每天都會碰到的設計問題,每個問題找幾個成熟函式庫當作不同的答案,寫最小的臨摹實作、用同一組測試逼出分歧,再探問:為什麼它們選得不一樣?
我希望的不是透過這個主題介紹函式庫,而是重建其中的設計判斷。
在學習程式的過程中,經常聽到一句話「別重複造輪子。」因為這樣能夠把時間、力氣留給真正值得煩惱的問題。別人寫過、驗證過的邏輯,通常比自己埋首苦幹半天寫出來的更快、...
昨天我在前言提到,這個系列會用「臨摹」的方式來理解函式庫。但如果原始碼就公開在那裡,為什麼不是打開來讀過一遍就好?今天想先用一個不到十行的 Hook,談談我對這...
昨天那個不到十行的 usePrevious,最後停在一個沒有答案的地方:我們每天都說某個 Hook 很複雜,卻很少說得清楚,那個複雜度到底是從哪裡長出來的。 「...
昨天把臨摹要用的三把尺,也就是複雜度、資訊隱藏以及深模組建立了起來。只是我們要衡量的對象是 React Hook,它不是一般模組,它活在 React 裡,所以必...
前幾天談的是臨摹的理由,以及 React 對 Hook 的約束。今天讓我們進入六個設計問題的第一關:遠端資料的複雜度 —— 這份資料是誰的? 遠端世界 ✍️ ·...
昨天我們把遠端資料搬到了元件外面的一個 Map 上,讓兩個元件共用同一份,這個 Map 叫做快取。然而,它不知道什麼時候該刪去裡面的請求,因為它不知道還有沒有元...
昨天我們把「舊了」與「該消失了」拆成兩條互不干涉的線,分別從「資料回來」與「沒人讀資料」開始計時,時間一到,就標記過期或刪除。 可是有時候我不希望等。比如我剛剛...