写点什么

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

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

关注

评论

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

高效数据移动指南 | 如何快速实现数据库 MySQL 到 MongoDB 的数据同步?

tapdata

MySQL mongodb mysql数据同步 mongodb数据同步工具 mysql同步到mongodb

构建智能电商系统:京东商品详情API返回值是关键

技术冰糖葫芦

api 网关 API Gateway API 文档 pinduoduo API

openGemini 社区人才培养计划:助力成长,培养新一代云原生数据库人才

华为云开源

时序数据库 开源社区 openGemini 华为云开源

国科云域名解析课堂:一个域名可以解析到多个IP地址吗?

防火墙后吃泡面

面试官:说说停止线程池的执行流程?

不在线第一只蜗牛

Java 面试

Karmada v1.11 版本发布!新增应用跨集群滚动升级能力

华为云原生团队

云计算 容器 云原生 Karmada

“软件驱动未来·数字闪耀金陵”2024南京软博会,官宣定档!

AIOTE智博会

软件博览会 软件展会 软博会 南京软博会

通义灵码企业代码补全增强使用实践

阿里巴巴云原生

阿里云 云原生 通义灵码

通义灵码企业代码补全增强使用实践

阿里云云效

阿里云 云原生 通义灵码

哈银消金以普惠金融服务助力假期经济

极客天地

数字化转型背景下低代码开发模式变革的研究

不在线第一只蜗牛

低代码 数字化

BOE(京东方)领先科技赋能体育产业全面向新 以击剑、电竞、健身三大应用场景诠释未来健康运动新生活

科技汇

去美元化浪潮下:加密货币的机遇与挑战

区块链软件开发推广运营

交易所开发 链游开发 NFT开发 公链开发 代币开发

通义灵码获得国产 AI 编码工具最高成绩丨阿里云云原生 8 月产品月报

阿里巴巴云原生

阿里云 云原生 通义灵码

软件测试学习笔记丨Charles 实战

测试人

软件测试

从孤岛到协同,集成式财务规划的未来

智达方通

业财融合 全面预算管理 财务管理 财务预算

从低代码到AI赋能,企业科技创新的下一个风口

天津汇柏科技有限公司

低代码 AI 人工智能

皮阿诺七星服务,提升家居定制新体验

新消费日报

摊牌了!一文教会你轻松上手豆包MarsCode 编程助手!

TRAE.ai

人工智能 AI 代码 教程 分享工具

BTC ETF资金流入暴涨400%,市场下一步将如何发展?

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

掌握 C++17:结构化绑定与拷贝消除的妙用

不在线第一只蜗牛

c++

Flink全新周边正式上线!议题征集正在进行中!

Apache Flink

大数据 flink 实时计算 Apache Flink FFA

按图搜索的实时性:阿里巴巴拍立淘API返回值的快速响

技术冰糖葫芦

api 网关 API Gateway API 文档 API 测试 pinduoduo API

实现多线程的方式有哪些?

秃头小帅oi

面试官:线程池遇到未处理的异常会崩溃吗?

王磊

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