一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

OSC開源社區(qū) ? 來源:OSC開源社區(qū) ? 2023-12-14 10:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

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

示例代碼

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 (
    
  );
}






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    525

    瀏覽量

    54626
  • CSS
    CSS
    +關(guān)注

    關(guān)注

    0

    文章

    110

    瀏覽量

    14787
  • 選擇器
    +關(guān)注

    關(guān)注

    0

    文章

    110

    瀏覽量

    14796
  • 靜態(tài)分析
    +關(guān)注

    關(guān)注

    1

    文章

    42

    瀏覽量

    4025

原文標(biāo)題:Facebook開源StyleX , 在JavaScript中寫CSS

文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    CSS6404L 在物聯(lián)網(wǎng)設(shè)備的應(yīng)用優(yōu)勢

    物聯(lián)網(wǎng)設(shè)備對存儲芯片的需求聚焦于低功耗、小尺寸、高可靠性與傳輸效率,Cascadeteq 的 CSS6404L 64Mb Quad-SPI Pseudo-SRAM 憑借差異化技術(shù)特性,在同類產(chǎn)品展現(xiàn)顯著優(yōu)勢。以下從核心特性及競品對比兩方面解析其應(yīng)用價值。
    的頭像 發(fā)表于 06-06 15:31 ?162次閱讀

    何在DevEco Studio利用CodeGPT接入DeepSeek

    近期DeepSeek火爆全球,那一樣很火的開發(fā)鴻蒙原生應(yīng)用的DevEco Studio如果把它接入,會發(fā)生什么“化學(xué)反應(yīng)”?下面我們將詳細(xì)分享如何在DevEco Studio利用CodeGPT
    的頭像 發(fā)表于 02-19 13:52 ?998次閱讀
    如<b class='flag-5'>何在</b>DevEco Studio<b class='flag-5'>中</b>利用CodeGPT接入DeepSeek

    JavaScript與Rust和WebAssembly集成

    偶然一次機會,接觸了Rust的代碼。當(dāng)時想給團(tuán)隊小伙伴做演示,發(fā)現(xiàn)自己并不能在移動端按照文檔生成演示demo。我就想,要是Rust代碼能轉(zhuǎn)化成JavaScript就好了。結(jié)果一搜,還真有。
    的頭像 發(fā)表于 01-24 15:43 ?413次閱讀
    <b class='flag-5'>JavaScript</b>與Rust和WebAssembly集成

    SciChart—高性能的JavaScript圖表和圖形庫

    使用 SciChart 的 JavaScript 圖表庫為您的 JS 應(yīng)用程序發(fā)現(xiàn)終極解決方案。 使用 WebGL 創(chuàng)建動態(tài)、高速的圖表和圖形,非常適合實時處理復(fù)雜的數(shù)據(jù)可視化。使用我們強大而靈活
    的頭像 發(fā)表于 01-22 10:15 ?660次閱讀
    SciChart—高性能的<b class='flag-5'>JavaScript</b>圖表和圖形庫

    Spire.XLS for JavaScript——多功能JavaScript電子表格庫(一)

    Spire.XLS for JavaScript 是一款專為開發(fā)人員設(shè)計的 JavaScript Excel 工具庫,支持在任何 JavaScript 環(huán)境下直接創(chuàng)建、讀取、編輯和轉(zhuǎn)換 Excel
    的頭像 發(fā)表于 01-21 09:29 ?469次閱讀
    Spire.XLS for <b class='flag-5'>JavaScript</b>——多功能<b class='flag-5'>JavaScript</b>電子表格庫(一)

    javascript:void(0) 是否影響SEO優(yōu)化

    使用 javascript:void(0) 確實可能對SEO優(yōu)化產(chǎn)生負(fù)面影響 。以下是關(guān)于 javascript:void(0) 對SEO影響的具體分析: 搜索引擎爬蟲的理解問題 搜索引擎爬蟲(如
    的頭像 發(fā)表于 12-31 16:08 ?529次閱讀

    javascript:void(0) 的作用是什么

    javascript:void(0) 在 HTML 和 JavaScript 是一個常見的表達(dá)式,主要用來創(chuàng)建一個無操作的鏈接(通常是 標(biāo)簽)或者阻止默認(rèn)事件處理。具體來說,它的作用有以下幾點
    的頭像 發(fā)表于 12-31 15:55 ?2100次閱讀

    何在播放視頻過程插入音頻

    ZDP14x0是一款基于開源GUI引擎的圖像顯示專用驅(qū)動芯片,可以通過串口或者SPI與其他芯片通信,且能播放視頻。本文將介紹如何在播放視頻過程插入音頻。
    的頭像 發(fā)表于 12-26 11:13 ?1004次閱讀
    如<b class='flag-5'>何在</b>播放視頻過程<b class='flag-5'>中</b>插入音頻

    開源能帶我們走向何方

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

    Tailwind CSS v4.0發(fā)布首個Beta版本

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

    研發(fā)都應(yīng)該了解的如何在vite接入現(xiàn)代化css工程化方案

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

    何在Altium Designer快速定位器件

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

    基于CSS融合存儲系統(tǒng)的自動化制造服務(wù)平臺存儲解決方案

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

    何在反激式拓?fù)?b class='flag-5'>中實現(xiàn)軟啟動

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

    bootstrap框架介紹

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