AICon 北京站 Keynote 亮点揭秘,想了解 Agent 智能体来就对了! 了解详情
写点什么

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

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

关注

评论

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

脚手架 | 从零搭建满足权限校验等需求的前端命令行工具

梁龙先森

node.js 大前端

第五周作业

jizhi7

week5-根据当周学习情况,完成一篇学习总结

未来已来

Week_09 作业

golangboy

极客大学架构师训练营

为什么你写的拦截器注入不了 Java bean?

Java旅途

Java spring Spring Boot 拦截器

【架构师训练营 1 期】第九周作业

诺乐

Week 9 作业02

Croesus

还在用分库分表?看TiDB如何解决海量数据无感扩容难题

京东科技开发者

数据库 分布式数据库 #TiDB

鹿鼎记 · 韦小宝,丽春院、天地会、入皇宫等五个场景的恶搞版多线程锁学习!

小傅哥

Java 程序员 小傅哥 多线程

第九周总结

智能灯串开发资料全开源!为这个冬天装点烂漫“星空”

智能物联实验室

人工智能 物联网 智能硬件 智能家居

第九周作业

文智

极客大学架构师训练营

第九周总结

熊桂平

5G革命:如何让「数据」实现最大性能?

VoltDB

数据库 数据分析 5G 工业互联网

田哥:面试被问== 与equals 的区别,该怎么回答?

田维常

面试

《Elasticsearch服务器开发》.pdf

田维常

elasticsearch

【架构师训练营 1 期】第九周学习总结

诺乐

【薪火计划】04 - 心态和角色

码字与律动

管理

极客大学 - 架构师训练营 第十周作业

9527

讲武德,你们要的高性能日志工具 Log4j2,来了

沉默王二

Java log4j

第九周课后练习

饭桶

第9周学习总结

饭桶

经典计算机课程

Joseph295

展现非凡领跑力,京东会展云斩获“十大云原生行业落地典范”奖项

京东科技开发者

云计算 AI 云原生

记一次HEX和RGB互换算法的思考及应用

徐小夕

Java 面试 算法 大前端

week5-(2选1)

未来已来

vivo 调用链 Agent 原理及实践

vivo互联网技术

Java 架构 调用链

第九周作业

Week_09 总结

golangboy

极客大学架构师训练营

Istio 中的智能 DNS 代理功能

Jimmy Song

开源 云原生 Service Mesh istio 服务网格

架构师训练营 - 第 9 周课后作业(1 期)

Pudding

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