日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

CSS-in-JS 是惡魔還是天使?

 

 

有些人極為討厭 css-in-JS,單單提起這個名字都會讓他們反感,總之就是拒絕二字。他們認為樣式不屬于 JAVAScript,而是屬于 CSS,并且 CSS 有著很長的歷史,瀏覽器支持非常完善。關注點必須分離,其他路子都走錯了,我們要以史為鑒(比如標簽等)。

有些人非常喜歡 CSS-in-JS。他們看到模板和功能并存的理念和大多數的 JavaScript 框架都非常成功,所以包裝在樣式里似乎就是順其自然。Vue 的單文件組件就是一個例子。

Brent Jackson 列舉了一些 CSS-in-JS 能做和不能做的事情:

CSS-in-JS 能做什么?

  • 讓你用 JavaScript 語法編寫 CSS
  • 組件和樣式共用
  • 利用原生 JS 語法功能
  • 利用 JS 生態系統

CSS-in-JS 沒法讓你了解

  • 如何將樣式應用于 DOM
  • 繼承如何工作
  • CSS 屬性如何工作
  • CSS 布局如何工作

CSS-in-JS 并不能減輕你學習 CSS 的負擔,大多數情況下就是如此。

CSS-in-JS 的正方辯友和反方辯友

我聽過很多對 CSS-in-JS 的排斥言論,諸如“你用 CSS-in-JS 是因為你不懂 CSS”或者“你們這樣做是因為你害怕級聯。我已經知道如何定位 CSS 了。“但這些言論只是在挑事而已。

Lara buns 的那篇“沒有 Web 的 Web 世界”寫的很好,其中就提到了 React 和 CSS-in-JS:

我討厭 React,因為默認情況下 CSS-in-JS 方法需要你編寫完全自包含的組件,而不是從宏觀層面構建網站的 UI。

不是說你用了 React 就得用 CSS-in-JS,但這種做法很流行,上面這段評價也很公正有趣。如果你什么東西都要打包,難道不是在引入更多不一致的風險嗎?

我一直都是 CSS 模塊的粉絲,因為它就像 CSS-in-JS 一樣簡單,而且和 SASS 并用可以保證一致性。但人們使用它時也很容易陷入太多一次性使用的陷阱中。

這些只會用一次的代碼可以拋棄,可以分離,一切都很平衡。

Laura 還說她喜歡 CSS-in-JS 方法,它提供了一些強大的功能和靈活性:

我喜歡 CSS-in-JS,因為它提供了足夠的抽象,讓你既能用通用選擇器之類的技巧,同時也能充分利用 JS 來做容器查詢之類的東西。

Martin Hofmann 創建了一個網站,用一個很小的“警報組件”來客觀地對比 BEM 與 Emotion 。BEM 有一些優點,特別是不需要任何工具,并且可以輕松地與任何 Web 項目共享。但 Emotion 方法在很多方面都比較干凈,看起來更容易處理。

CSS-in-JS 是惡魔還是天使?

 

我希望有更多這種客觀的技術比較,公正地列出每項技術的優勢和代價。

Scott Jehl 的一篇文章討論了異步加載 CSS。文章開頭寫到:

我們可以用一種不會拖累頁面渲染的方法加載 CSS,大幅提升頁面性能和適應性。

值得一提的是 CSS-in-JS 方法天然就有這種能力,因為樣式被捆綁到了 JavaScript 中。當然這種做法需要付出性能代價,但是如果我們消除一些阻塞渲染的障礙就能減輕一些代價。起碼這種方法值得多用一些數據。

我不覺得 CSS-in-JS 就一定提高了行業的門檻。我們并沒有強行排除 CSS,強迫大家用別的語言。這種方法適合某些項目,適用于特定規模。

我覺得以下情況下你應該考慮一下 CSS-in-JS:

  • 你正在開發一個有大量組件的 JavaScript 項目。
  • 你要把模板、功能和數據查詢做在一起。
  • 你認為利用這種方法的同時不會影響用戶體驗。
  • 你的團隊喜歡這種技術,不會因此萌生退意。

Max Stoiber 寫的文章介紹了這種方法給他帶來的信心和為他節省的時間。但他也認為這種方法只適合 JavaScript 框架應用程序。

如果你使用 JavaScript 框架來構建包含組件的 Web 應用程序,那么 CSS-in-JS 可能非常適合你的需求。如果你的團隊成員都具備基本的 JavaScript 能力那就最好不過了。

英文原文: https://css-tricks.com/the-differing-perspectives-on-css-in-js/

分享到:
標簽:CSS JS
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定