尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
shadcn/ui 新建项目时 Base UI 与 Radix 基础组件库怎么选?
shadcn/ui 新建项目时 Base UI 与 Radix 基础组件库怎么选【免费下载链接】uiA set of beautifully-designed, accessible components and a code distribution platform. Works with your favorite frameworks. Open Source. Open Code.项目地址: https://gitcode.com/GitHub_Trending/ui/ui在 shadcn/ui 里用 CLI 新建项目npx shadcnlatest init时需要选定一个基础组件库base。从 2026 年 7 月起Base UI 是 shadcn/ui 的默认基础组件库Radix 保持完整支持两者都可以通过-b, --base参数在新建项目时指定取值范围是base、radix、aria。这篇文章说明选型的文档依据、两条路径的具体命令以及如何验证最终生效的 base。选型的官方依据关于选哪个项目文档给出的事实如下来源2026-07-base-ui-default.mdxBase UI 已稳定版本 1.6.0周下载量 6M团队持续发布新组件官方对Starting something new?的明确回答是 We recommend Base UI。Radix 没有被废弃官方仍在生产环境运行 Radix 且自身不做迁移——If your app works, keep shipping。每一次更新和新组件都会同时发布给两个库除非某组件只存在于 Base UI。已有项目无需迁移Radix 是成熟、经过测试的库存量项目保持在当前 base 上即可。文档也给出了历史背景shadcn/ui 2023 年 1 月首发时基于 Radix 构建而 Base UI 出自 Radix 原班团队2025 年 12 月npx shadcn create开始提供双库选择2026 年 1 月补全了 Base UI 全套组件文档来源2026-01-base-ui.mdx。两者关系是同一套抽象、不同的底层原语无论选哪个库组件的使用方式一致例如 Dialog 在两个库下都是// Works the same whether youre using Radix or Base UI. import { Dialog, DialogContent, DialogTrigger } from /components/ui/dialog所以选型的核心问题不是哪个组件库的功能界面不一样而是团队现状与生态惯性新项目跟默认值走 Base UI团队已有 Radix 积累或明确要求 Radix 的就指定 Radix。新建项目时指定基础组件库CLI 文档中init命令的相关选项来源cli.mdx/cli.mdx)Options: -t, --template template the template to use. (next, vite, start, react-router, laravel, astro) -b, --base base the component library to use. (base, radix, aria)默认走 Base UI——不加-b直接初始化npx shadcnlatest init -t next支持的新项目模板为next、vite、startTanStack Start、react-router、astroLaravel 需先用laravel new建应用再执行init见 installation/index.mdx。明确指定 Radixnpx shadcnlatest init --base radix这里有一个容易忽略的场景官方 changelog 专门提醒如果脚本或 CI 正在非交互地运行shadcn init并预期得到 Radix需要显式加上-b radix——因为默认值已从 Radix 切换为 Base UI不加参数会静默落到 Base UI 上。另外注意aria这个取值2026 年 7 月 React Aria 成为第三类一等 basenpx shadcnlatest init --base aria与 Base UI、Radix 并列可选同一份 changelog 也确认Base UI remains the default, and Radix remains fully supported. Existing projects stay on their current base来源2026-07-react-aria.mdx。本文只讨论 Base UI 与 Radixaria按同一条-b参数处理即可。用 npx shadcnlatest info 验证 base 是否生效初始化完成后用info命令查看项目当前状态npx shadcnlatest info按 CLI 文档info会展示 framework、version、CSS vars、已安装的组件等完整信息agent 技能文档 skills/shadcn/rules/base-vs-radix.md 明确要求Check thebasefield fromnpx shadcnlatest info即判断当前项目 base 的入口就是info输出里的base字段。还有一个直观的交叉验证add组件时安装的原语依赖不同。以 Base UI 版 Button 的手动安装步骤为例依赖是来源components/base/button.mdxnpm install base-ui/react而 Radix 侧组件对应radix-ui/react-*系列包CLI 还提供migrate radix迁移把这些分散包统一成radix-ui单一包。初始化后检查package.json里装的是base-ui/react还是radix-ui/react-*可以直接确认 base 落到了哪一侧。选择前需要了解的两库 API 差异两个库共享上层 API但底层原语的行为有若干已记录的差异这些差异是是否值得偏离默认选 Radix或反之的判断素材。以下摘自 skills/shadcn/rules/base-vs-radix.md组件Base UIRadix组合/替换默认元素renderprop如DialogTrigger render{Button /} /asChildprop如DialogTrigger asChildButton 渲染为a等非按钮元素需额外加nativeButton{false}用asChild即可Select 选项根节点必须传itemsprop占位项是{ value: null }内联 JSX占位用SelectValue placeholder... /Select 能力支持multiple、render 函数、对象值itemToStringValue仅单选、字符串值ToggleGroup布尔multipledefaultValue恒为数组typesingle/typemultiple单选时defaultValue是字符串Slider 单滑块直接传数字defaultValue{50}必须传数组defaultValue{[50]}Accordion无typeprop用布尔multipledefaultValue恒为数组必须typesingle/typemultiple支持collapsibledefaultValue是字符串由此可以得出两条文档支撑的判断需要 Base UI 独有能力时例如 Select 多选、对象值Base UI 是唯一选择——官方也说明每个更新和新组件都发布给两个库除非某组件只存在于 Base UI。团队已有 Radix 代码模式asChild习惯、Radix 的受控值形状时选 Radix 可以少改代码反之新项目按 Base UI 的写法起步。组件级文档同样分库每个组件页有 Base UI 与 Radix 两个标签页文档默认打开 Base UI 标签Radix docs are one click away来源2026-07-base-ui-default.mdx。CLI 侧也支持按库取文档npx shadcnlatest docs combobox # -b, --base base the base to use: base, radix, or aria. defaults to project base.限制与后续路径不要在存量生产应用中切换基础组件库。官方原话是the worst thing you can do for your production app is switch component libraries两个库可以在项目中并存渐进式共存而不是一次性切换。如果之后决定迁移官方提供的是技能skill而非 codemodnpx skills add shadcn/ui然后对编码代理逐组件下达指令例如migrate accordion to base-ui。每次运行产出三样东西可构建、通过类型检查的代码项目根目录.migration/下每个组件一份报告改动、未动项、需人工核验的行为变化清单每个组件一个独立 commit回滚即删分支。构建 registry 的团队如果希望分发内容固定到某个库需要在 registry 项中携带registry:base配置未声明的项现在会按 Base UI 初始化。回到选型本身文档给出的结论是明确的——新项目推荐 Base UI也就是什么都不加时的默认行为有 Radix 偏好时用--base radix显式固定尤其是非交互的脚本和 CI选定后用npx shadcnlatest info的base字段和package.json中的原语依赖包确认结果。【免费下载链接】uiA set of beautifully-designed, accessible components and a code distribution platform. Works with your favorite frameworks. Open Source. Open Code.项目地址: https://gitcode.com/GitHub_Trending/ui/ui创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

一串9引发的生产事故:边界值治理与系统稳定性实践

一串9引发的生产事故:边界值治理与系统稳定性实践

1. 凌晨两点半,我被一条"999999999999999"惊醒 半夜两点四十七分,告警电话打过来的时候,我正睡得不深。监控平台显示,支付回调接口的成功率从99.98%一路掉到92.7%,失败请求不报超时、不报空指针,…

📅 2026/10/26 2:49:12
Playwright 经代理下载浏览器报 “self signed certificate in certificate chain“ 如何解决?

Playwright 经代理下载浏览器报 “self signed certificate in certificate chain“ 如何解决?

Playwright 经代理下载浏览器报 "self signed certificate in certificate chain" 如何解决? 【免费下载链接】playwright Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single AP…

📅 2026/10/6 16:51:41
Qt QML项目CMake模板:从构建配置到跨平台部署的完整指南

Qt QML项目CMake模板:从构建配置到跨平台部署的完整指南

写项目模板这事儿,说实话比写业务代码更容易翻车。业务代码写错了最多功能跑不通,项目模板要是有问题,那真的是一传十、十传百,整个团队、整个仓库的工程化地基都跟着歪。尤其是Qt的QML项目,C和QML混着写,资…

📅 2026/10/8 5:11:45
MORE NEWS

更多资讯

📰

蓝牙防丢器离线告警系统:嵌入式BLE通信闭环实战

简介:这是一份面向Android初学者与蓝牙开发爱好者的实战型APP源码资源,聚焦蓝牙低功耗(BLE)防丢器的移动端控制实现,解决智能硬件配对、状态监控与远程提醒等典型物联网交互问题。压缩包共63个文件,含5个核…

📰

STM32F103RCT6驱动1.44寸TFT屏:从点灯到UI底板实战

简介:这份资源面向嵌入式初学者与需要快速验证显示方案的开发者,围绕STM32F103RCT6驱动1.44英寸128128彩色TFT屏展开,解决从引脚定义、SPI初始化到屏幕刷新这一完整链路的落地问题。压缩包共86个文件、约289KB,以38个h头文件与32个…

📰

电调MK V0.41固件:BLDC六步换相与反电动势过零检测实战

简介:电调MK V0.41代码面向无人机、遥控飞机等无刷电机控制的学习者与嵌入式开发者,聚焦无感无刷电调的设计与实现。资源围绕反电动势检测的无传感器控制、PWM调速、数字滤波与平滑、过流过热短路保护、PID驱动算法及PPM信号解码等关键环节展开&#xff…

📰

高次方程求解与多项式表达式计算技巧

1. 方程求解的基本思路面对"x⁵ x 1 0, x - x ?"这样的复合数学问题,我们需要分步骤解决。首先需要理解题目结构:这是一个由两个方程组成的复合问题,第一个方程是五次方程,第二个是三次方程的表达式求值问题。1.1 …

📰

Oracle数据库版本演进与核心技术解析

1. Oracle数据库发展历程全景图Oracle数据库作为关系型数据库的标杆产品,其40余年的版本迭代史堪称一部数据库技术进化史。1979年推出的Oracle V2首次实现了SQL语言支持,这个用汇编语言编写的版本已经展现出"数据一致性"的核心设计理念。真正奠…

📰

Ubuntu 20.04网络配置与Netplan使用指南

1. Ubuntu 20.04网络配置基础认知Ubuntu 20.04 LTS(代号Focal Fossa)作为长期支持版本,其网络管理方式相比早期版本有了显著变化。最核心的改变是从传统的ifupdown工具全面转向Netplan——一个基于YAML配置文件的网络管理抽象层。这种设计使得…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬