写点什么

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

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

关注

评论

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

MatrixOne 实战系列回顾 | 建模与多租户

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne HTAP数据库

SaaS与PaaS平台的区别

树上有只程序猿

低代码 PaaS SaaS

MatrixOne 支持多样化生态工具,持续提升开发者体验

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne HTAP数据库

Xmind for Mac(思维导图软件) 24.01永久激活版

mac

XMind 思维导图软件 苹果mac Windows软件

专家分享——CAE仿真软件学习心得

智造软件

仿真 CAE 仿真软件 CAE软件 altair

MatrixOne完成与欧拉、麒麟信安的兼容互认

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne HTAP数据库

云电脑运行原理分析

天翼云开发者社区

虚拟化 云平台 云电脑

有限元分析初学者需要关注哪些问题?

思茂信息

仿真软件 仿真技术 有限元分析 有限元仿真 有限元技术

代码迭代:软件开发者在众包平台的发展之路

知者如C

情感语音识别技术的挑战与未来发展

来自四九城儿

Java中tranisent关键字到底是干嘛用的?

郑在暴富中

Java 关键字 transient

交易所开发:加密货币交易平台开发的见解

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 链游开发 公链开发

弹性云主机支持多种规格

天翼云开发者社区

云计算 云主机 云平台

三策略,六步骤,Jenkins 迁移到极狐GitLab CI 的终极指南

极狐GitLab

ci DevOps gitlab 持续集成 jenkins

聚焦数据安全,神州数码联合多方发布《数据分类分级自动化建设指南》

科技热闻

超过5000+企业使用的ETL平台

RestCloud

ETL

大数据的技术运用:探索未来的无限可能性

EquatorCoco

大数据 技术应用 城市智能化 医疗健康

情感语音识别技术的发展趋势与前景

来自四九城儿

AI机器学习实战:构建智能系统的关键步骤

不在线第一只蜗牛

人工智能 机器学习 AI

使用CURL获取速卖通详情的API接口

Noah

小程序转换工具—Antmove 使用教学

FN0

小程序 Antmove

SecureFX for Mac(ftp文件传输工具)附注册码 v9.4.2永久激活版

mac

苹果mac Windows软件 SecureFX 文件传输客户端

item_get_pro-获得淘宝商品详情高级版api接口

技术冰糖葫芦

API 文档

亲身体验云原生顶会北美 KubeCon,5个要点和4个 Fun Facts

小猿姐

Kubernetes 云原生 cncf KubeCON

情感语音识别的研究方法与实践

来自四九城儿

Linux 爱好者线下沙龙:成都场圆满结束 & 下一场西子湖畔相见 | LLUG·第五站

OpenAnolis小助手

操作系统 杭州 龙蜥社区 LLUG Linux中国

AppLink上的小鹅通能实现什么操作呢?

RestCloud

APPlink

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