【问题标题】:Style components with `styles` prop or `className` prop + `mergeStyleSets`?使用 `styles` 属性或 `className` 属性 + `mergeStyleSets` 的样式组件?
【发布时间】:2020-05-13 08:33:22
【问题描述】:

Fluent UI React 的新手。

我一直在修改框架,并阅读了我能找到的所有文档。我的理解是,在组件样式方面鼓励使用 CSS-in-JS 方法。我看到有两种方法可以做到这一点——通过 styles 道具和通过使用 mergeStyleSets 实用程序函数 + className 道具。这是一个codepen 来说明我的意思。

我的问题是,它们服务于不同的用例还是几乎相同?我如何决定使用哪一个?谢谢。

【问题讨论】:

    标签: reactjs office-ui-fabric-react fluent-ui


    【解决方案1】:

    我已经尝试了这两种方法,并且更倾向于 mergeStyleSets,因为它为我提供了一种可预测地针对所有内容的方法,并且我不必学习深埋在每个组件中的“神奇类名”以及它做什么或不做什么影响。话虽如此,对于某些关键组件,例如 DataGrid,涉及到很多样式,并且公开的类并不难学习,并且有助于充分利用这些组件。

    当您必须为“悬停”或“活动”或“之前/之后”之类的事情做选择器时,情况尤其如此。与直接在原始 HTML 上使用“mergeStyles”方法相比,尝试通过“样式”公开的魔术类名称来实现这一点对我来说更令人困惑。

    所以对我来说,我一直在从框架中挑选,将它用于颜色主题、高度和 DataGrid 等高度复杂的组件,但不适用于 Stack 或 Stack Item 之类的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 2017-09-01
      • 2018-09-27
      • 2016-11-30
      • 2017-10-05
      • 2021-08-08
      相关资源
      最近更新 更多