2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

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

关注

评论

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

第五周作业

秦宝齐

学习

分布式系统架构设计 - 一致性hash算法及其改进

常平

分布式 架构设计

架构师训练营 第 5 周总结

Lingjun

极客大学架构师训练营

架构师训练营作业-20200705

caibird1984

极客大学架构师训练营

如何写好一封简历?

石云升

职场 简历优化 职场成长 简历

80%会问到的18个Dubbo面试题,快来看看你都掌握了吗

小新

Java 程序员 架构 面试 dubbo

游戏夜读 | 简单认识一下爬虫

game1night

ARTS|Week 6 合并有序列表、团队、MIME类型和IIS

Puran

LeetCode ARTS 打卡计划

架构第五周 - 学习总结

J.Smile

极客大学架构师训练营

第一个Spring程序(代码篇)

JavaPub

spring

架构师训练营第五周 - 作业

Eric

极客大学架构师训练营

一文搞懂分布式消息中间件设计

小隐乐乐

消息队列

Python设计模式 单例模式

早睡蟒

Python 面向对象 设计模式 单例模式

程序人生 | 春风得意马蹄疾,一日看尽长安花

YourBatman

Java 程序员 程序人生

一篇告诉你什么是Spring

JavaPub

spring

分布式系统架构设计 - 从CAP到PACELC

常平

架构 分布式

从“金 木 水 火 土”到分布式系统架构设计

常平

分布式 架构设计

架构师训练营总结-20200705

caibird1984

极客大学架构师训练营

总结

Mr.Monkey

唯一路径的动态规划解法,阿里巴巴架构演化路径 John 易筋 ARTS 打卡 Week 07

John(易筋)

动态规划 ARTS 打卡计划 系统架构演化 唯一路径

第五周作业

赵龙

在Windows上使用IIS来托管站点

Puran

windows IIS Server

LeetCode | 7. Merge Two Sorted Lists 合并两个有序列表

Puran

Python C# 算法 LeetCode

分布式缓存架构作业

qihuajun

ARTS打卡(2020.06.29-2020.07.04)

小王同学

ARTS 打卡计划

Git【入门】这一篇就够了

JavaPub

spring

极客大学架构师训练营 系统架构 消息队列 数据库备份 第10课 听课总结

John(易筋)

负载均衡 极客时间 极客大学 极客大学架构师训练营 消息队列

ARTS Week6

丽子

分布式系统架构学习总结

qihuajun

第五周学习总结

赵龙

一致性Hash算法——架构师训练营第5周

架构 极客大学架构师训练营 一致性Hash算法 第5周作业 负载均衡算法

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