1.爲什麼出現了錯亂?
- 起初,項目中的每個組件的樣式使用
less
語法寫的,爲了避免編譯後,出現樣式覆蓋的問題。元素的類名使用的是文件名打頭 。後來,我引入了ant-desgin
UI框架。結果發現,由它帶來的重置css樣式,覆蓋了我自己的css樣式。 - 覆蓋的根本原因是:我自己的css樣式,是被
webpack
編譯到main.css
文件中的,由link
標籤引入的。而ant-desgin
帶來的css樣式,最終是被編譯成style
樣式表插到main.css
後面了,因此,導致了樣式覆蓋問題。
2.接下來如何解決?
- 使用
styled-component
組件庫。 - 好處:
(1)生成的樣式表,是由獨一無二的類名組成的。不用擔心樣式覆蓋的問題。
(2)通過JavaScript來爲CSS賦能,我們能達到常規CSS所不好處理的邏輯複雜、函數方法、複用、避免干擾。
(3)透傳props,可以動態改變組件的樣式。