2

用js写一个内联样式,

const styles = {
    background: 'blue',
    color: 'white'
}

并在 JSX 中使用它,如下所示

<div style={styles}> I am a div </div>

使用“样式化组件”编写样式,

const Div= styled.div`
     background: 'blue',
     color: 'white'
`

并像使用它一样,

<Div> I am a Div </Div>

这里使用 css-in-js 库和使用内联样式有什么区别。

4

1 回答 1

2

首先,您的styled.div示例是错误的,因为在 CSS-in-JS 中您编写的是实际的 CSS 而不是类似对象的样式:

// "Real CSS"
const Div= styled.div`
  background: blue;
  color: white;
`

其次,CSS 类通常更好,而且,内联样式被认为是不好的做法,因为很难重用和维护样式。

CSS 类的性能通常比内联样式更好。

所以总而言之:

  1. 在内联样式中,您编写类似对象的样式与实际的 CSS
  2. 编写 CSS 可以获得 CSS 的所有好处(如选择器)。
  3. 重用和维护 CSS 比内联样式容易得多。
  4. 真正的争论在于 CSS-in-JS 与 CSS 模块与 SASS 与普通 CSS 之间(为此,您可以在 SO 中搜索或阅读相关问题)。
  5. 内联样式被认为是不好的做法,因为它们会覆盖所有定义的样式。
  6. 内联样式的功能有限(尝试以内联样式制作动画,甚至实现媒体查询)。
于 2020-03-09T08:12:48.707 回答