写点什么

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

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

关注

评论

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

第二章课后习题

博博

第7周总结

alpha

极客大学架构师训练营

Week3 - 代码重构

evildracula

学习 架构

架构师训练营第七周

我是谁

极客大学架构师训练营

Fedora32安装和卸载openjdk11

ilovealt

Linux Openjdk

工作1-3年的程序员,应该具备怎么样的技术能力?该如何提升?

Java架构师迁哥

Java键值对排序

ilovealt

Java

单例模式样例

jorden wang

CAP原理及作业

橘子皮嚼着不脆

第15周作业

Vincent

极客时间 极客大学

一站式接口测试服务体系建设

DrawDe朱

接口自动化 自动化测试平台

第七周作业

alpha

极客大学架构师训练营

架构师训练营 1 期第 7 周:性能优化(一)- 总结

piercebn

极客大学架构师训练营

囚徒困境:跳脱思维的牢笼

多元思维力-晓陶

认知 思维 多元思维力

极客时间架构师训练营 1 期 - 第 7周总结

Kaven

极客时间架构师培训 1 期 - 第 7 周作业

Kaven

架构师训练营第三周学习笔记

邢永春

第三周 单例

Geek_9527

架构师训练营 1 期第 7 周:性能优化(一)- 作业

piercebn

极客大学架构师训练营

Spring Data Jpa deleteAll大概了解

ilovealt

Java jpa

第二章学习笔记

博博

全链路压测在信用卡行业的实践

DrawDe朱

全链路压测

读完Java名著《Effective Java》: 我整理了这50条技巧

Java架构之路

Java 程序员 架构 面试 编程语言

架构师训练营第三周作业

邢永春

Java核心基础——反射

老农小江

Java 基础

Netty源码解析 -- PoolChunk实现原理

binecy

源码 Netty 内存布局

Week3 - 练习

evildracula

架构

架构师入门学习感悟三

笑春风

Spring+多线程+集合+MVC+数据结构算法 +MyBatis源码学习笔记分享

Java架构之路

Java 程序员 架构 面试 编程语言

GitHub上最火的SpringCloud微服务商城系统项目,附全套教程

Java架构之路

Java 程序员 架构 面试 编程语言

「架构师训练营」第 3周作业

小黄鱼

极客大学架构师训练营

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