2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

你需要知道的 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:004785
用户头像

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

关注

评论

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

2021,云原生避坑经验分享|CIC 阵容官宣

青云技术社区

容器 云原生

智能运维(AIOps)系列之一:个人对智能运维的理解

micklongen

AIOPS 智能运维

阿凡达公链AC系统APP开发

☕️【Java技术之旅】【ConcurrentHashMap】深入浅出核心源码分析(JDK1.8版本)

码界西柚

Java 源码分析 ConcurrentHashMap 6月日更

MongoDB磁盘清理那些事儿

循环智能

mongodb 集群 主从 GridFS 磁盘清理

覆盖80%以上Java性能调优场景,三年开发经验以下慎入

Java架构师迁哥

我们常说的算法时间复杂度和空间复杂度到底是什么?

编程三昧

编程 算法复杂度

工程师必知的代码重构指南

百度开发者中心

代码重构

百度关于微前端架构EMP的探索:落地生产可用的微前端架构

百度开发者中心

百度 大前端

中国大学MOOC Android 客户端开发提效之页面信息

有道技术团队

android 服务端 客户端

5分钟速读之Rust权威指南(三十三)Send&Sync

wzx

rust

卢卡开专栏了

卢卡多多

数据库 MySQL 高可用 6月日更

大佬讲【暴力破解】漏洞的原理、利用和防范

网络安全学海

网络安全 安全 信息安全 漏洞 漏洞修复

前几年写的自己团队管理内容,如果你想做研发管理,可以看一下

安宇|Way

管理 考核 团队 文化 价值观

网络攻防学习笔记 Day60

穿过生命散发芬芳

网络攻防 6月日更

vue keep-alive(1):vue router如何保证页面回退页面不刷新?

zhoulujun

Vue vue-router keep-alive 页面缓存

Ipfs矿机收入如何?IPFS矿机一天收益多少?

区块链 数字货币 IPFS

分布式图计算引擎

6979阿强

分布式计算 图计算

Redis入门六:集群

打工人!

redis 缓存穿透 缓存击穿 缓存雪崩 redis集群

智能技术与生物技术共同绘就生命“藏宝图”,对你我意味着什么?

脑极体

中层管理者的工作五步法

石云升

读书笔记 职场经验 管理经验 6月日更

Redis入门七:分布式锁

打工人!

redis 分布式锁 redis分布式锁

提升中台化体系产研效能的ParisFlow方法与实践

downgoon

《面试补习》- Java集合知识梳理

九灵

Java 面试 集合

推荐系统之数据与特征工程(二十三)

Databri_AI

数据 推荐系统 技术特征

CloudQuery 使用教程之 No.3 数据查询(中)

BinTools图尔兹

云计算 dba 开发运维 数据库管控工具 国产数据控

Java的多线程和高并发详解

北游学Java

Java 多线程

漏洞都有哪些分类

网络安全学海

网络安全 信息安全 渗透测试 漏洞 漏洞分析

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