Introduction
這個系列會分享我這些年累積下來 React Component 的開發經驗, 也藉此機會嘗試一下我發現的新玩具。
這系列不是走理論派,
我想嘗試透過實務開發再帶入理論的方式來分享這些知識。
內容會涵蓋:
- Monorepo 的專案架構
- 開發出符合 WAI 規格的可達性元件
- 單元測試 跟 E2E 測試
- React Pattern
全部都 不會很詳細 的解釋,至少在這個系列我認為不太適合講太多理論。
大!? 專案
其實不算是製作大專案,至少我並不崇尚大專案。
但是我們會用 Monorepo 下去拆模組,
方便元件開發時的獨立性,
也能順便測試實際專案在導入時的情況,
這也是大多開源元件庫的架構方式。
accessibility 可達性
製作開源元件庫,是一件非常有趣的事情,
但元件庫要走向 production 最大的障礙,
主要出在 accessibility。
當前台灣開發生態比較沒有重視,
甚至根本就不知道這個東西的存在,
其原因可能是 沒有打進歐美市場 跟 政府立案問題,
包含美國,歐洲甚至一些亞洲國家,都有可達性標準相關立法,
沒有合格是無法在該國營運。
stability 穩定性
The more your tests resemble the way your software is used, the more confidence they can give you.
Kent C. Dodds
我太常寫出 🐛 了,
這次會實際操演一遍 Test-driven development,會先寫單元測試在實作。
如果有緣可以在嘗試做 E2E 的文章。
latest 新的
現在落筆時間是 Sep 2022,
這個系列描述的技術跟版本,
至少不會有超過 3 年以上太久遠的部分,
因為很多是在這個時間點算新,
有些知識跟寫法可能還找不太到中文相關的文章,
要去翻原文文件跟 repository 的 issue (至少我是這樣)。
headless component
並不是指完全不處理 style,
是我傾向 元件庫應該要只封裝元件邏輯,
樣式則是在應用程序開發的階段根據需求套上。
這樣的好處是可以給予設計師最大化的設計彈性,
而且通常元件邏輯其實大同小異更容易共用。
元件邏輯 !== 業務邏輯
現行有蠻多的開源元件庫採用這個模式,
也是我目前採用過感受最好的方案,
兼具彈性,效能,可達性,穩定,開發成本降。
如何閱讀這個系列
這個系列主要分做兩個部分
- 標題是 如何 開頭就是實作
- 標題是 什麼 開頭就是理論