首页 > 解决方案 > 为什么 css-in-js 系统需要 ThemeProvider/useTheme

问题描述

(或根据库类似命名)

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

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

标签: styled-componentsemotionchakrarebassstyled-system

解决方案


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

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


推荐阅读