写点什么

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

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

关注

评论

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

Blender 十大重点功能带你一次了解!

Finovy Cloud

blender

人力场景全覆盖——中企出海之宝岛台湾

用友BIP

全球化 中企出海

新手必看:Postman Newman 详细使用指南

Liam

程序员 测试 开发 Postman API

只需 2 小时,变身 Flink 实战派:Flink-Learning实战营火热报名中

Apache Flink

大数据 flink 实时计算

inBuilder今日分享丨Object-C消息转发与发送机制

inBuilder低代码平台

奇妙敏捷之旅·青岛站,真的太酷啦!

禅道项目管理

软件测试/测试开发丨Python 控制流:循环、判断

测试人

Python 程序员 控制流 循环 判断

中企出海台湾篇之人力需求

用友BIP

全球化 中企出海

打工人集体患上AI焦虑症,真的会被AI取代?

牵着蜗牛去散步

人工智能 腾讯云 腾讯 AI集训营

单元测试|Unittest setup前置初始化和teardown后置操作

霍格沃兹测试开发学社

热烈祝贺埃文科技北京、上海、深圳分公司成立

郑州埃文科技

分公司成立

强强联合!中软国际携手用友,全面重构全球人力资源数字化系统

用友BIP

数智人力

用友BIP全球司库十问之银行账户统一管理怎么做?

用友BIP

全球司库

Nautilus Chain测试网迎阶段性里程碑,模块化区块链拉开新序幕

鳄鱼视界

软件测试/测试开发丨Python 内置库 json、正则表达式 re

测试人

Python json 程序员 软件测试

数智平台多维数据库:新时代的数据管理利器

用友BIP

数据库 数智平台

推送服务接入指导(HarmonyOS篇)

HarmonyOS SDK

HMS Core

华为新员工在学的课程长啥样? 扫码立即揭晓!

华为云PaaS服务小智

华为 培训 华为云

【有奖调研】HarmonyOS新物种,鸿蒙流量新阵地——元服务邀你来答题!

HarmonyOS SDK

HMS Core

接口测试|HttpRunner简介及安装

霍格沃兹测试开发学社

HttpRunner

阿里云携手开放原子开源基金会倡议发起云原生工作委员会,两大开源项目达成捐赠意向

阿里巴巴云原生

阿里云 开源 云原生

数智化时代,如何利用数智人力高效管理人才?

用友BIP

数智人力

迈向世界一流财务管理体系,全面预算管理体系不可或缺

用友BIP

财务共享

接口测试|HttpRunner模拟发送GET请求&自动生成测试报告

霍格沃兹测试开发学社

HttpRunner

数智赋能与低代码:是医药行业的创新引擎还是心魔歧途

加入高科技仿生人

低代码 数智化 数智化转型 数智赋能 医药行业

分享三个java低代码开发平台,每个都很能打,建议收藏

优秀

低代码 低代码开发平台 java低代码开发平台

数据分析提效5倍,国有集团企业数字化历程 | 数字化标杆

袋鼠云数栈

数字化转型 数据治理 企业号 6 月 PK 榜

全面解析数据治理

郑州埃文科技

数据治理

如何通过数智平台多维数据库实现价值替代?

用友BIP

数据库 数智平台

Video-LLaMA 开源,大语言模型也能读懂视频了!

Zilliz

计算机视觉 AIGC Towhee LLM

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