Thoughts on CSS in components

關於用 component 形式撰寫 css 的一些想法

Why is it a thing?

為何選擇這個主題

專案開發碰上了...

  • ​​想要修改樣式,卻要檢視好幾個檔案的狀況
  • 這個 component 看起來可以用,可是我要挖好幾個洞才能傳想要的樣式進去 

What is Ideal?

怎樣是理想狀況?

既然能夠被稱為「元件」,我希望...

  1. ​​你需要知道的東西都在同一支檔案裡面
  2. 不同元件之間不會有互卡的狀況

What is blocking our way?

為什麼會出現不理想的狀況?

一個抽象的概念沒有被凸顯

“ 父子關係 ”

(parent and child)

What is that?

蛤,那啥?

以實際例子來看...

What matters?

看起來大家都知道,有什麼重要的嗎?

“ 你的孩子會是別人的父親 ”

作為子元素的樣式和作為父元素的樣式混在一起了

central issue

回到實際例子

直覺的想法:

可能發生的問題

今天 header 想拿出去用,可是 margin 卻寫死了

可能發生的問題

filter 裡面做了 5 個 component 之後,發現爆版,要在 5 個 component 和 filter 之間來回調整

可能發生的問題

ListWrapper 為了重複使用,開了幾個洞來丟樣式。今天要修改設計,卻找不到要改哪一支 props

Possible Solution

改善的方式

改善的方式

  1. 將子元素獨立出來
  2. 在同一支檔案裡面看得到父子關係

改善的方式

不同樣式的關注點可以分開來

改善的方式 其之二

在同一個 component 中有多層父子關係 / layout

  • 將樣式分開成獨立的 props

改善的方式 其之二

  • 從變數名稱看得出來不同層的父子關係
  • props 中看得出來這個 tag 跟誰有關係 

回到案例

回到案例

Tricky Thing ...

這兩層不也是父子關係嗎?

In conclution

總結來說

清楚的父子關係可以縮小檢視的檔案數量

clear focal point

清楚的父子關係可以減少樣式互相牽連的狀況

less coupling

清楚的父子關係可以讓模組更容易鑲嵌

higher reusability

End

沒ㄌ

Made with Slides.com