iT邦幫忙

鐵人檔案

2022 iThome 鐵人賽
回列表
Modern Web

我們可以不要 component library 了嗎? 系列

component library 為前端開發解決了什麼問題?又有什麼缺點?
自製一套 component library 好像沒有想像中的那麼困難,但有必要嗎?
這 30 天會依序記錄自製前端元件的心得,並判斷這一切到底值不值得 (*°ω°*ฅ)*

鐵人鍊成 | 共 30 篇文章 | 14 人訂閱 訂閱系列文 RSS系列文
DAY 21

day21: Accordions

MUI 的 Accordion 支援兩種行為: 每個 Accordion 元件的開闔狀態各自獨立:當畫面上有複數個 Accordion 元件時,開啟 Acco...

2022-10-02 ‧ 由 查理狐狐 分享
DAY 22

day22: TransitionEffect, useDelayUnmount

把元件延遲卸載的行為打包到 custom hook useDelayUnmount 中,而 TransitionEffect 元件本身專注在處理掛載、卸載動畫效...

2022-10-03 ‧ 由 查理狐狐 分享
DAY 23

day23: Tooltip

要處理兩件事情: Tooltip 會透過 Portal 掛載到 document.body 下,避免 ToolTip 被其他親節點的 CSS 影響而無法正常...

2022-10-04 ‧ 由 查理狐狐 分享
DAY 24

day24: mergeRef

今天是最後一次了把 ButtonBase 拖出來鞭屍了。 更新 ButtonBase 的理由是讓這個元件可以透過 props 傳入 ref 資料,而需要這樣做的...

2022-10-05 ‧ 由 查理狐狐 分享
DAY 25

day25: Input

最經典的 Input 系列元件還是不免俗地要復刻看看啦 ? 今天以「透過原生 HTMLInputElement 來還原 MUI input 系列元件的外觀」為主...

2022-10-06 ‧ 由 查理狐狐 分享
DAY 26

day26: Avatar

實作時感覺最魔術的地方是 flex-direction: row-reverse; 搭配 justify-content: flex-end; 來做出堆疊效果。...

2022-10-07 ‧ 由 查理狐狐 分享
DAY 27

day27: Badge

參考了 MUI Badge 的一些設計,最後決定實作成「當 props.badgeContent 的值為 falsity 時,不顯示 badge 點;並且使用者...

2022-10-08 ‧ 由 查理狐狐 分享
DAY 28

day28: StyleProvider

倒數第二天了,來做個比較大的:嘗試復刻出 MUI StyleProvider 的效果。 成品 原始碼展示 開發思路 兩套樣式設定存放在專案資料夾的 src/st...

2022-10-09 ‧ 由 查理狐狐 分享
DAY 29

day29: useSystemColorScheme

成品 原始碼展示 開發思路 參考 MDN 對於 window.matchMedia 的說明,可以知道這個方法會根據傳入的 media query 字串回傳對應的...

2022-10-10 ‧ 由 查理狐狐 分享
DAY 30

結語:所以值得嗎?

值得,但不是在做出這麼多元件這方面,而是透過實際開發來了解第三方元件庫(可能)為什麼會這樣設計,以及接觸一些平常可能不會使用的到瀏覽器 API。 以及一個很大的...

2022-10-11 ‧ 由 查理狐狐 分享