以前在网页开发的时候有一个原则叫做关注点分离(Separation of Concerns)。
意思是各种技术只负责他们自己的领域,不要混用,以网页开发来说就是将 HTML、CSS、JS 分离,不要写 inline-style 跟 inline script。
跟在写 Rails 时用到的 MVC 架构蛮像的,将功能区分,把各功能放在该放的位置。
不过 React 出现後,这个原则就被打破了,因为 React 是组件结构,强制把 HTML、CSS、JS 写在一起。
而根据css-in-js libraries,目前有超过 50 种 CSS in JS 的函式库可以使用,其中 styled-components 算是比较有名的,在 GitHub 上有将近 35K 的星星数。
import React from 'react';
import styled from 'styled-components';
const Title = styled.h1`
font-size: 1.5em;
text-align: center;
color: palevioletred;
`;
const Wrapper = styled.section`
padding: 4em;
background: papayawhip;
`;
<Wrapper>
<Title>Hello World, this is my first styled component!</Title>
</Wrapper>
上面例子把 HTML 跟 CSS 都用 const 包成一个常数,使用时只要将他包在<>里就可以直接吃到里面的 HTML 跟 CSS,相当方便。
参考:
[1]Separation of Concerns (SoC)
[2]CSS in JS (react.js)
[3]CSS in JS 简介
[4]CSS-in-JS简介:示例,优点和缺点
[5]【Day 12】Styled-component
<<: 第 10 天 别说吕布了,你听过青铜五小强吗 |Template-driven-form、ngModel、Template variables
Git在干嘛 随着系统架构越来越复杂,一个专案开始会有多人合作的情况越来越多,档案管理的需求也日渐浮...
课程目标 课程前半段主要让学员建立Angular开发框架相关基本观念,并透过Angular CLI建...
这是铁人赛的最後一篇文章,我想在这个结尾分享为什麽我会写这个主题,这是因为几个月前的某一天我正在与跨...
前置作业 在 Podfile 里面新增 Firebase Realtime Database 套件 ...
这两天要来带大家看看JavaScript(JS)与TypeScript(TS)的函式(Functio...