styled-components - 为什么 css-in-js 系统需要 ThemeProvider/useTheme
问题描述
(或根据库类似命名)
这些功能纯粹是为了便于在应用程序中访问主题,还是提供一些功能/性能优势?
通过将主题导入组件直接访问主题或通过 ThemeProvider 访问主题有什么区别?
解决方案
我认为任何绩效缺陷或收益都可以忽略不计。然而,它们确实提供了易用性,因为内联主题更容易,例如color: ${(theme) => theme.colors.primary}
无需每次都导入主题文件。还有一些帮助程序可以使访问不那么冗长。
另一个很大的好处是当您需要使用不同的主题或即时交换它们时。AThemeProvider
将根据需要进行更新,您甚至可以使用嵌套在 main theme中的不同主题变体。如果你在做暗模式等,真的很有帮助。
推荐阅读
- ajax - 来自 API (Ajax) 的 Laravel 消息
- java - 将 Activity ktx 与 viewmodel 和 java 一起使用
- python - 您如何识别用于输出目的的稀疏张量?
- c++ - 这在 C++ 中是什么意思?
- flutter - `didChangeDependencies` 中的提供者不更新数据
- masstransit - 配置更多时,MassTransit 仅批处理 10
- python - python中套接字编程期间的错误
- scala - 为什么 super 的这种用法会产生这个结果
- node.js - 如何在有多个数据库的项目中使用 $lookup?
- javascript - IOS 上的 Angular 下载 PDF 大多在同一选项卡中打开