为什么使用 useStyles MaterialUI 函数而不是 CSS?

Why use useStyles MaterialUI function instead of CSS?

我正在使用 Material UI 组件或内联属性制作 MER​​N 应用程序。但是为什么要创建一个 js 文件,我必须在其中导入 makeStyles 函数,它基本上 returns 一个带有 CSS 的对象。然后相应地将它分配给我的不同元素的类名。 什么时候可以做一个CSS文件,然后直接在里面写CSS。

使用 CSS in JS 或类似的东西的好处之一,就像您使用 Material UI 编写 CSS 的方式一样,您可以使 CSS 属性 动态。这意味着 CSS 属性 可以适应您 App 上的任何动态数据。

假设您正在为某些卡片创建 fade-in 弹出效果,并且您希望它以下列方式发生:

  • 从头到尾,所有的牌出现的时间总是1秒。
  • 每张牌的时间都相同fade-in。
  • 在前一张卡片完成它的fade-in动画后,下一张卡片将开始fade-in动画(这意味着后一张卡片应该有卡片动画持续时间的动画延迟)。

如果你总共有两张卡,也许你可以简单地写CSS aniamtion-duration 0.5s,第二张卡0.5 animation-delay

但是如果你不知道卡片的总数怎么办?这就是我们所说的动态数据。我们无法制作静态 CSS 属性 来完成这样的动画。单独使用 CSS 并且没有 HTML 和 JS 的帮助,没有办法做到这一点。使用 JS,我们可以访问变量和动态数据,这些数据也可以应用于 CSS,因此我们可以将它们放入 CSS.

CSS 在 JS 中不是唯一的方法,而是一个有效的工具,这就是为什么有很多包可以使用它,例如 Styled Component & Emotion。更不用说,JS 中的 CSS 还有很多其他的好处,比如可以让你的 CSS 可重用(它会在变成实际的 CSS 之前被当作一个对象对待),希望这个可以帮到你