写点什么

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

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

关注

评论

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

“夺金”2024中国互联网大会!天翼云斩获三项大奖!

天翼云开发者社区

云计算 互联网大会

从 NextJS SSRF 漏洞看 Host 头滥用所带来的危害

我再BUG界嘎嘎乱杀

网络安全 安全 漏洞

CMeas度量体系建设:让数据驱动更科学

嘉为蓝鲸

DevOps 研发效能 研发

产品更新 | WeOpsV4.13新增应用归属链路配置,适配用户使用场景

嘉为蓝鲸

weops

MCtalk·CEO对话×酷家乐:从智能涌现到应用涌现,AI在B端做了哪些事?

ToB行业头条

某能源自保公司:携手嘉为蓝鲸WeOps,共赴运维转型升级之路!

嘉为蓝鲸

数字化转型 可观测 自动化运维

盘点那些国际知名的黑客(下)

网络安全服务

技术 黑客 计算机 黑客攻击 女性

告别手动做PPT!这5款AI一键生成PPT软件,你都知道吗?

彭宏豪95

人工智能 效率工具 PPT AIGC AI生成PPT

最佳产品奖,TeleDB拿下!

天翼云开发者社区

数据库 云计算

城商行:构建自动化运维管理体系,助力数字化转型

嘉为蓝鲸

自动化 自动化运维 运维服务

IT服务管理中的人工智能应用

嘉为蓝鲸

ITSM 大模型 AI Agent 智能服务台

赋能未来教育,3DCAT实时云渲染助力深圳鹏程技师学院打造5G+XR实训室

3DCAT实时渲染

实时云渲染 虚拟仿真云教学 虚拟仿真实训教学

如何搭建设备巡检二维码?看看这篇教程

草料二维码

一文了解元宇宙校园教育解决方案!

3DCAT实时渲染

实时云渲染 元宇宙解决方案 元宇宙教育 教育元宇宙

网安人必须人手一份的《Linux私房教程》,GitHub星标286K!

我再BUG界嘎嘎乱杀

Linux 网络安全 安全 操作系统

Tele-FLM系列再升级!52B对话模型发布、全球首个万亿单体稠密模型开源

智源研究院

【YashanDB知识库】YashanDB的JDBC/OCI驱动如何设置字符编码

YashanDB

yashandb 崖山数据库 崖山DB

热度继续!从零到一,和亚马逊云科技一起快速启动属于你的大模型

科技热闻

面试官:聊聊你对分库分表的理解?

王磊

Java

MCtalk·CEO对话×酷家乐:从智能涌现到应用涌现,AI在B端做了哪些事?

ToB行业头条

从模糊到清晰:AI 超分引领画质升级

七牛云

视频超分 超分 图像超分

促进云边协同发展,我们一直在努力!

天翼云开发者社区

云计算 算力

中国人民大学商学院校友IT互联网+俱乐部会长董哲一行到访亚信科技,共探企业创新之路

亚信AntDB数据库

快手可灵视频生成大模型全方位测评

快手技术

音视频技术 #大模型

KaiwuDB CTO 魏可伟:差异化创新,面向行业的多模架构

KaiwuDB

多模数据库 KaiwuDB 新版本发布

“分离”“聚合”两手抓,天翼云聚合计算赋能多元化应用场景!

天翼云开发者社区

云计算 天翼云

企业如何实现运维故障加速闭环的告警体系建设

嘉为蓝鲸

监控告警 告警管理

API签名及加密方式详解

幂简集成

API API签名

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