【问题标题】:Why do css-in-js systems need ThemeProvider/useTheme为什么 css-in-js 系统需要 ThemeProvider/useTheme
【发布时间】:2021-02-01 17:28:42
【问题描述】:

(或类似名称,取决于库)

这些功能纯粹是为了便于在应用中访问主题,还是提供一些功能/性能优势?

通过将主题导入组件直接访问主题或通过 ThemeProvider 访问主题有什么区别?

【问题讨论】:

    标签: styled-components emotion chakra rebass styled-system


    【解决方案1】:

    我认为任何性能缺陷或收益都可以忽略不计。然而,它们确实提供了易用性,因为更容易获得主题内联,例如color: ${(theme) => theme.colors.primary},而无需每次都导入主题文件。还有一些帮助程序可以使访问不那么冗长。

    另一个很大的好处是当您需要使用不同的主题或即时交换它们时。 ThemeProvider 将根据需要更新,您甚至可以使用嵌套在主 theme 中的不同主题变体。如果您正在使用暗模式等,这真的很有帮助。

    【讨论】:

      猜你喜欢
      • 2016-10-03
      • 2019-06-06
      • 1970-01-01
      • 1970-01-01
      • 2017-03-14
      • 1970-01-01
      • 2021-01-14
      • 1970-01-01
      • 2019-02-21
      相关资源
      最近更新 更多