2025 AI基础设施风向标,不看必后悔!#AI基础设施峰会 了解详情
写点什么

你需要知道的 CSS-in-JS

  • 2017-11-26
  • 本文字数:5209 字

    阅读完需:约 17 分钟

什么是 CSS-in-JS?直接在.css 文件里写 CSS(CSS-in-CSS)不是挺好的吗,为什么还需要 CSS-in-JS?

说到这里,不得不提到组件化。因为有了组件化概念,就不再需要维护一大堆杂乱的样式。CSS-in-JS 在组件层面(而不是文档层面)对 CSS 进行了抽象。在项目中维护一个巨大的样式文件夹实在是一件让人感到头疼的事情,很多人不禁感叹,是否还有其他更好的办法?不用说,CSS-in-JS 在目前看来就是一个最佳解决方案。

当然,要继续使用 CSS-in-CSS 还是转向 CSS-in-JS 完全取决于开发者自己,最关键的是选择合适的工具来改进开发工作流,在提升生产力的同时也让开发变得更有趣。

什么是 CSS-in-JS

JSS 对 CSS 进行了抽象,使用了 JavaScript,以声明和可维护的方式来描述样式。它是一个高性能、运行在服务器端的运行时 JS 到 CSS 编译器。它的核心部分与框架无关,经过压缩后只有 6KB,并可以通过插件 API 的方式进行扩展。

需要注意的是,内联样式和 CSS-in-JS 是完全不一样的!

内联样式

复制代码
const textStyles = {
复制代码
   color: white,
复制代码
   backgroundColor: black
}
<p style={textStyles}>inline style!</p>

在浏览器里,样式属性会被附加到 DOM 节点上:

复制代码
<p style="color: white; backgrond-color: black;">inline style!</p>

CSS-in-JS

复制代码
import styled from 'styled-components';
const Text = styled.div`
复制代码
   color: white,
复制代码
   background: black
`
<Text>Hello CSS-in-JS</Text>

在浏览器里,样式类会被附加到 DOM 节点上:

复制代码
<style>
.hash136s21 {
复制代码
   background-color: black;
复制代码
   color: white;
}
</style>
<p class="hash136s21">Hello CSS-in-JS</p>

可以看出,CSS-in-JS 会附加整个

2017-11-26 18:004459
用户头像

发布了 322 篇内容, 共 146.7 次阅读, 收获喜欢 148 次。

关注

评论

发布
暂无评论
发现更多内容

druid源码阅读(一)整体概览

爱晒太阳的大白

5月月更

druid源码学习一

Nick

源码 Druid

小红书持续打击炫富行为:自媒体行业不能违背公序良俗

石头IT视角

数据库连接池-Druid 源码学习(一)

wjchenge

初始化 Druid 源码、

Druid连接池源码阅读01

石小天

带你从0->1学习双指针算法

工程师日月

5月月更

架构实战训练营毕业设计

刘帅

一文看懂Web3.0:元宇宙的基础设施,三大标签颠覆互联网

CECBC

linux之history使用技巧

入门小站

Linux

在线TSV转多行数据工具

入门小站

工具

设计模式之工厂模式

乌龟哥哥

5月月更

5月硬核预告!明晚开讲:Virtio 虚拟化技术趋势与 DPU 实践 | 第16 期

OpenAnolis小助手

云计算 直播 虚拟化 龙蜥社区 龙蜥大讲堂

架构实战训练营毕业总结

刘帅

RTC 系统音视频传输弱网对抗技术

融云 RongCloud

【ELT.ZIP】OpenHarmony啃论文俱乐部——大数据框架性能优化系统

ELT.ZIP

大数据 OpenHarmony 压缩算法 ELT.ZIP

元宇宙现阶段都支持哪些接入现实的活动?

CECBC

druid源码阅读1——获取连接与释放连接

张大彪

在线2进制8进制10进制16进制进制转换工具

入门小站

工具

开放报名 | 「RTC 进阶实战高手课」系列课程上线

融云 RongCloud

Hoo网格量化策略 震荡市场中的投资利器

区块链前沿News

量化 Hoo 网格交易

开源不易、安全慎行,中国软件如何走向文明?丨RTE 技术环境月报 202205

声网

开源 WebRTC RTE 编解码 技术环境月报

Web3:创作者经济的黄金时代

CECBC

数据仓库规范的重要性

奔向架构师

数据仓库 5月月更

开源之夏 2022 火热来袭!欢迎报名 OpenMLDB 社区项目~

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征平台

Go 语言入门很简单:Go 语言中操作 MySQL 数据库

宇宙之一粟

Go 语言 MySQL 数据库 5月月更

基于 Agora SDK 实现 iOS 端的多人视频互动

声网

视频 SDK教程

algorithm中的排序算法详解

工程师日月

算法 5月月更

微博评论高性能高可用架构设计

小虾米

【ELT.ZIP】OpenHarmony啃论文俱乐部——云计算数据压缩方案

ELT.ZIP

云计算 OpenHarmony 数据压缩 ELT.ZIP

区块链将掀开人类的新时代

CECBC

融云 x DSPORT:拿下游戏社交「实时社区」第一滴血

融云 RongCloud

你需要知道的CSS-in-JS_语言 & 开发_Indrek Lasn_InfoQ精选文章