写点什么

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

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

关注

评论

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

小程序热更新赋能App动态引擎无缝迭代

xuyinyin

海外达人营销常见误区与破解之道

Wolink

海外社媒营销 海外营销推广 达人营销

【跨国数仓迁移最佳实践8】MaxCompute Streaming Insert: 大数据数据流写业务迁移的实践与突破

阿里云大数据AI技术

阿里云 数据仓库 数据迁移 MaxCompute

当数据消费者从人变成 Agent,所有软件都将被改写!

白鲸开源

AI 数据仓库 数据 开源商业化 白鲸开源

闲鱼商品列表API数据解析

tbapi

闲鱼API 闲鱼数据采集 闲鱼商品列表数据 闲鱼关键词搜索接口

腾讯再次出手,现在视频号里也能直接召唤元宝了

苍何

睿思芯科正式加入龙蜥社区,携手共建 RISC-V 服务器生态新标杆

OpenAnolis小助手

操作系统 龙蜥生态

火山引擎多模态数据湖落地深势科技,提升科研数据处理效能

新消费日报

从库存到利润加速器 AI商品计划重塑零售战略

第七在线

国产 AI 再放大招!智谱开源 GLM-4.5V,视觉推理能力“屠榜”全球

测试人

合合信息参编《数据产业图谱(2025)》,助力绘制中国数字经济发展新蓝图

合合技术团队

人工智能 大数据 算法

腾讯Youtu-Agent正式开源,加速推动智能体从研究走向应用

极客天地

【硬核干货】把 DolphinScheduler 搬进 K8s:奇虎 360 商业化 900 天踩坑全记录

白鲸开源

开源 Kubernetes 技术分享 Apache DolphinScheduler 奇虎360

9.4 直播预告|工业时序数据库:从采数到智能决策

Apache IoTDB

用先进算力,为智驾提速:华为云CloudVeo智能驾驶云服务正式发布

极客天地

超级精灵再进化 smart发布EHD超级电混技术:每一程,比增程更成

极客天地

阿里云携手MiniMax构建云原生数仓最佳实践:大模型时代的 Data + AI 数据处理平台

阿里云大数据AI技术

阿里云 数仓 Dataworks Minimax

突破性AI设计工具Subframe:可视化React/Tailwind代码生成方案

qife122

前端开发 React

态势感知:数字时代的安全前哨与战略支撑

沃观Wovision

态势感知 舆情监测 沃观Wovision 舆情监测系统

从零搭建AI应用:Coze还是Dify?看完这篇不再纠结

测吧(北京)科技有限公司

SeaTunnel 如何给 MySQL 表做“精准切片”?一篇读懂 CDC 分片黑科技

白鲸开源

MySQL 大数据 开源 CDC Apache SeaTunnel

深度探讨基础软件驱动下的智驾进化之道 |《AI 进化论》第四期

OpenAnolis小助手

操作系统 智算 AI进化论

开源能源管理系统 MyEMS:赋能能源高效管理的创新利器

开源能源管理系统

开源 能源管理系统

通过工具增强 LLM Agent 能力:veRL+ReTool 的完整实践指南

火山引擎开发者社区

字节跳动

Coze教程 | 第2章:Coze开发环境搭建与配置

测吧(北京)科技有限公司

开源能源管理系统 MyEMS:技术深耕与实践赋能的深度解析

开源能源管理系统

开源 能源管理系统

从零开始学MCP | MCP 协议核心原理解析

测试人

JNPF报表设计,解锁数据呈现新方式

引迈信息

K8s集群+Rancher Server:部署DolphinScheduler 3.2.2集群

白鲸开源

大数据 开源 Kubernetes 云原生 Apache DolphinScheduler

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