色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Facebook開源StyleX如何在JavaScript中寫CSS呢?

OSC開源社區 ? 來源:OSC開源社區 ? 2023-12-14 10:03 ? 次閱讀

Meta(原 Facebook)開源了全新的 CSS-in-JS 庫 StyleX。

官方介紹道,StyleX 是一個富有表現力、具有確定性、可靠且可擴展的樣式系統。它通過使用編譯時 (compile-time) 工具融合了靜態 CSS 的性能和可擴展性。 此外,StyleX 不僅僅是一個基于編譯器的 CSS-in-JS 庫,它經過精心設計,可以滿足大型應用程序、可復用組件庫和靜態類型代碼庫的要求。Meta 旗下多款產品如 Facebook、WhatsApp、Instagram、Workplace、Threads 等都在使用 StyleX 作為其 CSS 樣式解決方案。 StyleX 主要特性

快速:StyleX 在編譯時和運行時都具備高效的性能。Babel 轉換不會對構建過程產生顯著影響。在運行時,StyleX 避免了使用 JavaScript 插入樣式的開銷,并僅在必要時高效地組合類名字符串。生成的 CSS 經過優化,確保即使是大型網站的樣式也能被瀏覽器快速解析。

可擴展:StyleX 旨在適應像 Meta 這樣的超大型代碼庫。通過原子構建和文件級緩存,Babel 插件能夠處理數萬個組件在編譯時的樣式處理。由于 StyleX 設計為封裝樣式,它允許在隔離環境中開發新組件,并期望一旦在其他組件中使用時能夠可預測地呈現。

可預測性:StyleX 會自動管理 CSS 選擇器的特異性,以確保生成的規則之間不會發生沖突。它為開發人員提供了一個可靠地應用樣式的系統,并確保 “最后應用的樣式始終生效”。

類型安全:使用 TypeScript 或 Flow 類型來約束組件接受的樣式,每個樣式屬性和變量都具有完全的類型定義。這有助于提高代碼的可讀性和可維護性,同時減少潛在的錯誤和沖突。

樣式去重:StyleX 鼓勵在同一文件中編寫樣式和組件。這種方法有助于使樣式在長期內更具可讀性和可維護性。StyleX 能夠利用靜態分析和構建時工具來跨組件去重樣式,并刪除未使用的樣式。

可測試性:StyleX 可以配置為輸出調試類名,而不是功能性的原子類名。這可以用于生成快照,以便在對設計進行輕微更改時不會經常變化。通過這種方式,開發人員可以更輕松地測試和驗證樣式的正確性,從而提高開發效率和產品質量。

示例代碼

import stylex from '@stylexjs/stylex';

const styles = stylex.create({
  root: {
    padding: 10,
  },
  element: {
    backgroundColor: 'red',
  },
});

const styleProps = stylex.apply(styles.root, styles.element);

下面是一個按鈕組件的示例代碼

import * as stylex from "@stylexjs/stylex";

const styles = stylex.create({
  base: {
    appearance: "none",
    borderWidth: 0,
    borderStyle: "none",
    backgroundColor: "blue",
    color: "white",
    borderRadius: 4,
    paddingBlock: 4,
    paddingInline: 8,
  },
});

export default function Button({
  onClick,
  children,
}: Readonly<{
  onClick: () => void;
  children: React.ReactNode;
}>) {
  return (
    
  );
}






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • javascript
    +關注

    關注

    0

    文章

    516

    瀏覽量

    53850
  • CSS
    CSS
    +關注

    關注

    0

    文章

    109

    瀏覽量

    14370
  • 選擇器
    +關注

    關注

    0

    文章

    107

    瀏覽量

    14534
  • 靜態分析
    +關注

    關注

    1

    文章

    40

    瀏覽量

    3885

原文標題:Facebook開源StyleX , 在JavaScript中寫CSS

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    開源能帶我們走向何方

    開源大模型、開源數據庫、開源框架、開源硬件......近些年,這些詞匯不絕于耳。雷軍說,好的代碼像詩一樣優美,自己大二時的代碼就已經
    的頭像 發表于 12-06 17:09 ?431次閱讀

    Tailwind CSS v4.0發布首個Beta版本

    Tailwind CSS 是一個為快速開發而精心設計的原子類 CSS 框架,它提供了充滿設計感和應用程序至上的能力來創建組件,它在最新的 2.0 版本中加入了暗黑模式,開箱即用。
    的頭像 發表于 11-25 10:02 ?176次閱讀
    Tailwind <b class='flag-5'>CSS</b> v4.0發布首個Beta版本

    研發都應該了解的如何在vite接入現代化css工程化方案

    好的css工程化方案可以增強我們項目的可維護性、提高樣式的復用性、進行自動化處理等,在提高頁面加載速度和性能的同時,我們可以有更多的精力進行js邏輯的處理。
    的頭像 發表于 10-25 17:25 ?351次閱讀

    何在Altium Designer快速定位器件

    想知道如何在Altium Designer快速定位器件嘛?
    的頭像 發表于 10-12 09:28 ?2724次閱讀
    如<b class='flag-5'>何在</b>Altium Designer<b class='flag-5'>中</b>快速定位器件

    基于CSS融合存儲系統的自動化制造服務平臺存儲解決方案

    基于CSS融合存儲系統的自動化制造服務平臺存儲解決方案
    的頭像 發表于 09-10 10:15 ?338次閱讀
    基于<b class='flag-5'>CSS</b>融合存儲系統的自動化制造服務平臺存儲解決方案

    何在反激式拓撲實現軟啟動

    電子發燒友網站提供《如何在反激式拓撲實現軟啟動.pdf》資料免費下載
    發表于 09-04 11:09 ?0次下載
    如<b class='flag-5'>何在</b>反激式拓撲<b class='flag-5'>中</b>實現軟啟動

    bootstrap框架介紹

    Bootstrap概述 Bootstrap是一個開源的前端框架,由Twitter公司開發。它基于HTML、CSSJavaScript,提供了一套響應式、移動優先的組件和樣式,可以幫助開發者快速構建網頁。 1.2
    的頭像 發表于 07-11 09:53 ?548次閱讀

    鴻蒙語言基礎類庫:ohos.convertxml xml轉換JavaScript

    轉換xml文本為JavaScript對象。
    的頭像 發表于 07-08 15:54 ?411次閱讀
    鴻蒙語言基礎類庫:ohos.convertxml  xml轉換<b class='flag-5'>JavaScript</b>

    芯海應用筆記:CSS34P16P(A)型應用說明文檔

    CSS34P16P(A)是 USB Type-C 型控制器,它符合最新 USB Type-C 型和 PD 標準. CSS34P16 為適配器、車載充電器、移動電源等應用提供了一個完整的 USB
    發表于 05-16 14:46

    Arm新Arm Neoverse計算子系統(CSS):Arm Neoverse CSS V3和Arm Neoverse CSS N3

    Arm宣布了兩款新的Arm Neoverse計算子系統(CSS),它們基于“迄今為止最好的一代Neoverse技術”。是什么讓這些新產品在擁擠的計算技術領域脫穎而出? Arm的兩個新Arm
    的頭像 發表于 04-24 17:53 ?1050次閱讀
    Arm新Arm Neoverse計算子系統(<b class='flag-5'>CSS</b>):Arm Neoverse <b class='flag-5'>CSS</b> V3和Arm Neoverse <b class='flag-5'>CSS</b> N3

    何在STEP 7(TIA Portal)安全地并且間接地尋址

    采用間接尋址時,只有程序執行時,用于讀或數值的地址才得以確定。使用這種方法可以減少編程量并使得程序更靈活。
    的頭像 發表于 04-07 09:58 ?573次閱讀
    如<b class='flag-5'>何在</b>STEP 7(TIA Portal)<b class='flag-5'>中</b>安全地并且間接地尋址<b class='flag-5'>呢</b>?

    何在Cubemx添加所有的外設頭文件?

    ,需要自己去添加相應的頭文件,但自己添加有時還是會報錯,而且是不知原因的報錯。 所以,在這向各位開發者、大咖,請教一下,如何在Cubemx添加所有的外設頭文件,或者在配置完cubemx后如何高效的添加自己所需要的外設頭文件
    發表于 04-01 07:46

    STM32L431CCT6頻繁出現LSE CSS錯誤是什么原因導致的?

    STM32L431CCT6芯片,外部使用32.768k的晶振,匹配電容22pf。LSE作為RTC,LPUART1的時鐘源,啟用LSE CSS功能。經常會發生LSE CSS錯誤,在發生錯誤的時候沒有
    發表于 03-28 09:01

    何在TC264/TC377使用FOC

    何在TC264/TC377使用FOC?GTMMOLD 的相關配置實在太過了混亂了,實在有看不到,沒有什么相關的中文資料或者開源代碼可供參考。
    發表于 01-19 07:59

    英飛凌與碳化硅供應商SK Siltron CSS達成協議

    英飛凌與韓國SK Siltron子企業SK Siltron CSS最近達成了一項重要協議。根據該協議,SK Siltron CSS將為英飛凌提供6英寸碳化硅(SiC)晶圓,以支持英飛凌在SiC半導體生產方面的需求。
    的頭像 發表于 01-17 14:08 ?659次閱讀
    主站蜘蛛池模板: 自拍视频亚洲综合在线精品| 嫩草成人国产精品| 国产午夜在线精品三级a午夜电影 国产午夜在线观看视频播放 | 东北女人奶大毛多水多| Chineseman瘦老头77| 91精品国产91热久久p| 中国xxxxxxxxx孕交| 在线二区 中文 无码| 曰本熟妇乱妇色A片在线| 一品道门在线视频| 伊人角狠狠狠狠| 真实国产熟睡乱子伦对白无套 | 特大黑人娇小亚洲女mp4| 色屁屁影院| 天堂网久久| 亚洲 欧美无码原创区| 亚洲国产中文字幕新在线| 亚洲精品国偷拍电影自产在线| 亚洲精品无码久久久久A片| 亚洲精品第一页中文字幕| 亚洲欧洲精品A片久久99| 伊人精品影院| 97视频免费在线观看| 成人免费公开视频| 国产精品熟女人妻| 黑人巨茎vide抽搐| 久久综合网久久综合| 暖暖直播免费观看韩国| 秋霞成人午夜鲁丝一区二区三区| 日本在线免费播放| 性xxx欧美| 真实伦 乱| 爱情岛aqdlttv| 国产精品青青草原app大全| 狠狠色狠狠色88综合日日91| 久久久无码AV精品亚洲A片软件| 免费麻豆国产黄网站在线观看| 日本高清免费在线观看| 亚洲AV无码一区二区色情蜜芽| 伊人亚洲AV久久无码精品| hdsexvideos中国明星|