AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

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

关注

评论

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

第八周

Geek_fabd84

架構師訓練營 week8 總結

ilake

架构师训练营第四周作业

丁乐洪

架构师训练第4周:作业一

leo

极客大学架构师训练营

性能优化二第八周作业「架构师训练营第 1 期」

天天向善

第八周作业

极客大学架构师训练营

系统架构总结

Mars

系统架构

为什么继承 Python 内置类型会出问题?!

Python猫

c Python 编程 程序员

架构师训练营第八周课后作业

Gosling

极客大学架构师训练营

第四周作业

晴空万里

架构师训练营 - 第八周 - 作业一

行者

架构师系列之5:互联网大数据分析系统架构例子解析

桃花原记

【第八周】性能优化(二)

云龙

Wi-Fi+BLE 通断器开发资料全开源!快速打造您的智能家居“改装神器”

智能物联实验室

人工智能 物联网 智能家居 通断器

LeetCode题解:169. 多数元素,排序,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

GitHub SSH免密登录

jiangling500

GitHub SSH 免密登录

网上如何精确分别百家电投台子真假靠谱方法(LGF微7998)

InfoQ_ba4217df53b1

架构师训练营第一期第八周作业

Leo乐

极客大学架构师训练营

它是世界上最好的语言,吊打PHP那种

MySQL从删库到跑路

php 少儿编程 scratch

架构师训练营第 1 期第八周总结

Leo乐

极客大学架构师训练营

亚新资本开创金融理财新征程

架构师训练营-week08

睁眼看世界

极客大学架构师训练营

深度学习-框架之 pytorch

Dreamer

框架

大型互联网系统技术架构模式

Mars

架构模式 大型互联网应用系统

架构师训练营 -week08-总结

大刘

极客大学架构师训练营

第八周作业一

天天向上

极客大学架构师训练营

架构师训练营第八周学习总结

Gosling

极客大学架构师训练营

在GitHub中如何进行PR(Pull Request)

jiangling500

GitHub PR

Netty源码解析 -- PoolChunk实现原理(jemalloc 3的算法)

binecy

源码 Netty 内存管理

架构师训练第4周:作业二

leo

极客大学架构师训练营

架构师训练营第 1 期 week8

张建亮

极客大学架构师训练营

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