「別重複造輪子」是效率的建議,不是學習的建議。三十天,我挑六個 React 每天都會碰到的設計問題,每個問題找幾個成熟函式庫當作不同的答案,寫最小的臨摹實作、用同一組測試逼出分歧,再探問:為什麼它們選得不一樣?
我希望的不是透過這個主題介紹函式庫,而是重建其中的設計判斷。
從「遠端世界」到「瀏覽器 API」,這四個領域包起來的,都是畫面上看不見的東西:一份遠端資料、一個 store、表單裡的值、localStorage 的一個 k...
昨天我們照 Downshift 的 useSelect 臨摹了一個下拉選單:一個 Hook 交回一包 prop getter,呼叫端把它們展開到自己寫的元素上。...
過去兩天,我們把同一份焦點合約,用兩種形狀交了出去。Day 20 照 Downshift 的 useSelect,由一個 Hook 交回一包 prop gett...
在「互動行為」的三天裡,函式庫替我們拿走了不少決定:焦點在誰身上、方向鍵往哪裡走、合約怎麼接到元素上。拿走的多寡不同,但 DOM 最後長什麼樣子,大致上還是由呼...
昨天,我們讓 createFixedList 在瀏覽器渲染之前就替每一列算好位置。不過,第 3 列一折行,兩列就重疊了。它從瀏覽器拿到的只有 scrollTop...
昨天,我們讓清單自己去量每一列的實際高度。TanStack Virtual 讓每一列各自被觀察,量到的尺寸一列記一筆;react-virtuoso 只觀察裝著列...
過去三天,我們從一份二十列的清單出發,探索了三個問題:為什麼剛畫出來的東西,會讓剛算好的位置變成錯的;誰被觀察、量到的尺寸又怎麼記;以及量到不一樣之後,捲動位置...
從 Day 04 到昨天,我們一次只順著一個問題往下走。每個領域的第一天,先把那個領域的問題寫成一句話;最後一天,再回頭看這幾天得到的答案。 昨天,真實 DOM...
昨天我們把六個領域的問題句並排,從裡面找出了四條軸。訂閱在樞紐之前,就建立了三種問法;失效則走過樞紐,到了真實 DOM,還在增加需要處理的情境。 這兩條軸,都是...