Tamagui
React风格库和UI工具包,统一了React Native和React web
当需要在React Web和React Native之间共享UI代码且追求极致性能时,Tamagui通过优化编译器将样式化组件扁平化为原子CSS或原生View,解决跨平台开发中“写一次、跑得好”的三角难题。
| 收费 | 核心库与UI套件开源免费,Takeout付费模板另售 |
|---|---|
| 平台 | Web + React Native(iOS/Android) |
| 中文 | 官方无中文,社区有第三方中文文档(ReadmeX) |
| 用途 | 构建跨平台通用UI,统一Web与原生样式代码 |
Tamagui由三个层级组成:@tamagui/core提供约24KB无外部依赖的样式库,支持React Native样式API超集;@tamagui/static编译器通过部分求值、CSS提取、树扁平化和死代码消除将运行时开销降至0;tamagui UI套件提供跨平台可组合组件,类似Radix但适配Web与原生。
不同于Styled Components或Emotion的纯运行时方案,Tamagui通过编译时优化同时兼顾开发体验与生产性能。相比React Native Web,它提供更完整的SSR支持、更轻的包体积以及主题和响应式系统的深度集成。
推荐通过CLI脚手架创建新项目,支持从简单示例到生产级monorepo的多种模板。现有项目可逐步引入@tamagui/core开始,再按需启用编译器。
Q1:Tamagui的编译器如何提升性能?
A1:编译器@tamagui/static对样式组件进行部分求值、静态提取、树扁平化和死代码消除。在Web上,它将组件扁平化为div并生成原子CSS,仅应用必要样式,减少CSS体积和渲染开销;在原生上,将样式对象提升为常量,避免重复创建。官方首页经编译器优化后Lighthouse得分提升约15%。
Q2:Tamagui能否与现有React Native项目集成?
A2:可以。Tamagui设计为逐步采用:先安装@tamagui/core替换React Native Web,样式API完全兼容;再按需添加编译器。它支持Metro打包器,与Expo和React Native CLI项目兼容。
Q3:Tamagui UI套件与Radix有何区别?
A3:Tamagui UI提供类似Radix的无样式和有样式组件,但核心差异在于跨平台:所有组件同时工作于Web和React Native。它还包含Adapt原语,允许组件根据平台或媒体查询自动切换形态(如移动端用Sheet,桌面端用Dialog)。
更多同类工具与网站,可在React分类继续挑选。
信息核实于 2026年7月,具体以官网为准。
评论
暂无评论