18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

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

3天內不再提示

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)過精心設計,可以滿足大型應用程序、可復用組件庫和靜態(tài)類型代碼庫的要求。Meta 旗下多款產品如 Facebook、WhatsApp、Instagram、Workplace、Threads 等都在使用 StyleX 作為其 CSS 樣式解決方案。 StyleX 主要特性

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

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

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

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

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

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

示例代碼

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






審核編輯:劉清

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

    關注

    0

    文章

    525

    瀏覽量

    55815
  • CSS
    CSS
    +關注

    關注

    0

    文章

    110

    瀏覽量

    15279
  • 選擇器
    +關注

    關注

    0

    文章

    110

    瀏覽量

    15034
  • 靜態(tài)分析

    關注

    1

    文章

    44

    瀏覽量

    4130

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    何在柵極驅動板,將隔離側的-15v電源轉為可調的-15至-4v輸出

    何在柵極驅動板,將隔離側的-15v電源轉為可調的-15至-4v輸出?
    發(fā)表于 09-22 17:20

    Arm正式取消Cortex命名!CPU向著高算力進發(fā),Lumex CSS平臺加持!

    電子發(fā)燒友網(wǎng)報道(文/黃晶晶)日前,在Arm Unlocked上海站技術論壇上,Arm重磅推出智能終端專屬 Lumex CSS平臺。Lumex CSS是一套專為旗艦級智能手機及下一代個人電腦加速其人
    的頭像 發(fā)表于 09-17 08:25 ?2514次閱讀
    Arm正式取消Cortex命名!CPU向著高算力進發(fā),Lumex <b class='flag-5'>CSS</b>平臺加持!

    何在 buildroot 的 rootfs 顯示當前目錄?

    何在 buildroot 的 rootfs 顯示當前目錄?
    發(fā)表于 09-03 07:02

    Arm Zena CSS加速軟件和芯片開發(fā)進程

    Arm 控股有限公司(納斯達克股票代碼:ARM,以下簡稱 Arm)近期宣布推出 Arm Zena 計算子系統(tǒng) (Compute Subsystems, CSS)。作為標準化且預先集成的計算平臺
    的頭像 發(fā)表于 08-25 16:22 ?1673次閱讀

    何在下載程序時保護flash的用戶數(shù)據(jù)不被覆蓋?

    使用stm32cubeide或stm32cubeprogrammer燒程序,stlink下載器,芯片stm32h743,芯片內部flash的0x08100000地址寫有用戶數(shù)據(jù),如何在重新燒
    發(fā)表于 08-14 06:38

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

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

    何在DevEco Studio利用CodeGPT接入DeepSeek

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

    JavaScript與Rust和WebAssembly集成

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

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

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

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

    Spire.XLS for JavaScript 是一款專為開發(fā)人員設計的 JavaScript Excel 工具庫,支持在任何 JavaScript 環(huán)境下直接創(chuàng)建、讀取、編輯和轉換 Excel
    的頭像 發(fā)表于 01-21 09:29 ?721次閱讀
    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)化產生負面影響 。以下是關于 javascript:void(0) 對SEO影響的具體分析: 搜索引擎爬蟲的理解問題 搜索引擎爬蟲(如
    的頭像 發(fā)表于 12-31 16:08 ?883次閱讀

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

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

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

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

    開源能帶我們走向何方

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

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

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