91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

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

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

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

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

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

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

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

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

可測(cè)試性:StyleX 可以配置為輸出調(diào)試類名,而不是功能性的原子類名。這可以用于生成快照,以便在對(duì)設(shè)計(jì)進(jìn)行輕微更改時(shí)不會(huì)經(jīng)常變化。通過(guò)這種方式,開發(fā)人員可以更輕松地測(cè)試和驗(yàn)證樣式的正確性,從而提高開發(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);

下面是一個(gè)按鈕組件的示例代碼

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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    526

    瀏覽量

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

    關(guān)注

    0

    文章

    110

    瀏覽量

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

    關(guān)注

    0

    文章

    111

    瀏覽量

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

    關(guān)注

    1

    文章

    45

    瀏覽量

    4206

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    何在Zephyr RTOS實(shí)現(xiàn)延時(shí)和計(jì)時(shí)函數(shù)

    在實(shí)時(shí)操作系統(tǒng)(RTOS),時(shí)間管理是核心功能之一。無(wú)論是任務(wù)調(diào)度、超時(shí)控制,還是周期性事件,延時(shí)和計(jì)時(shí)機(jī)制都扮演著至關(guān)重要的角色。Zephyr RTOS作為一個(gè)輕量級(jí)、模塊化的開源系統(tǒng),提供了
    的頭像 發(fā)表于 12-26 10:32 ?5397次閱讀
    如<b class='flag-5'>何在</b>Zephyr RTOS<b class='flag-5'>中</b>實(shí)現(xiàn)延時(shí)和計(jì)時(shí)函數(shù)

    何在Keil設(shè)置窗口標(biāo)題顏色和背景顏色?

    何在Keil設(shè)置窗口標(biāo)題顏色和背景顏色
    發(fā)表于 12-10 07:56

    開放原子開源基金會(huì)發(fā)布2025國(guó)高校開源育人案例集

    11月21日,在2025開放原子開發(fā)者大會(huì)開幕式上,開放原子開源基金會(huì)正式發(fā)布《2025國(guó)高校開源育人案例集》(簡(jiǎn)稱“《案例集》”),涵蓋29所高校和科研機(jī)構(gòu)的35個(gè)開源育人優(yōu)秀案例
    的頭像 發(fā)表于 11-25 17:30 ?824次閱讀

    何在VS code配置Zephyr集成開發(fā)環(huán)境

    上一篇文章介紹了如何在VS code中使用瑞薩官方插件為RA芯片創(chuàng)建項(xiàng)目與項(xiàng)目調(diào)試,相信大家對(duì)RA在VS code的開發(fā)有了基礎(chǔ)的了解。
    的頭像 發(fā)表于 11-05 14:46 ?1501次閱讀
    如<b class='flag-5'>何在</b>VS code<b class='flag-5'>中</b>配置Zephyr集成開發(fā)環(huán)境

    何在柵極驅(qū)動(dòng)板,將隔離側(cè)的-15v電源轉(zhuǎn)為可調(diào)的-15至-4v輸出

    何在柵極驅(qū)動(dòng)板,將隔離側(cè)的-15v電源轉(zhuǎn)為可調(diào)的-15至-4v輸出?
    發(fā)表于 09-22 17:20

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

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

    何在 buildroot 的 rootfs 顯示當(dāng)前目錄?

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

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

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

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

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

    CSS6404L 在物聯(lián)網(wǎng)設(shè)備的應(yīng)用優(yōu)勢(shì):低功耗高可靠的存儲(chǔ)革新與競(jìng)品對(duì)比

    CSS6404L 通過(guò) “高集成度 + 低功耗 + 寬適應(yīng)” 的組合特性,在容量、功耗、性能及場(chǎng)景兼容性上全面超越同類競(jìng)品,尤其在需要兼顧長(zhǎng)續(xù)航、高速傳輸與緊湊設(shè)計(jì)的物聯(lián)網(wǎng)場(chǎng)景,成為平衡成本與性能的理想選擇。其自管理刷新、雙模式接口等創(chuàng)新設(shè)計(jì),也為物聯(lián)網(wǎng)設(shè)備的智能化升級(jí)
    的頭像 發(fā)表于 06-06 15:35 ?661次閱讀
    <b class='flag-5'>CSS</b>6404L 在物聯(lián)網(wǎng)設(shè)備<b class='flag-5'>中</b>的應(yīng)用優(yōu)勢(shì):低功耗高可靠的存儲(chǔ)革新與競(jìng)品對(duì)比

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

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

    CSS6404LS-LI PSRAM:高清語(yǔ)音識(shí)別設(shè)備的理想存儲(chǔ)器解決方案

    CSS6404LS-LI通過(guò) >500MB/s帶寬、105℃高溫運(yùn)行及μA級(jí)休眠功耗三重突破,成為高清語(yǔ)音設(shè)備的理想存儲(chǔ)器
    的頭像 發(fā)表于 06-04 15:45 ?698次閱讀
    <b class='flag-5'>CSS</b>6404LS-LI PSRAM:高清語(yǔ)音識(shí)別設(shè)備的理想存儲(chǔ)器解決方案

    何在Simulink啟用ADC校準(zhǔn)?

    何在 Simulink 啟用 ADC 校準(zhǔn)? V4.2.0 產(chǎn)品發(fā)布報(bào)告指出,它在塊可用。但我在 ADC 配置塊找不到任何選項(xiàng)。
    發(fā)表于 03-31 07:50

    使用的CubeMX版本是6.12.0,為何在middleware and software Packs里找不到lwip的選項(xiàng)?

    我使用的CubeMX版本是6.12.0,為何在middleware and software Packs裡,找不到lwip的選項(xiàng)?
    發(fā)表于 03-07 09:24