UI Libraries UI 组件库

最后更新:2026-10-28

UI Libraries UI 组件库

React 组件库分两类思路:完整库(Ant Design、MUI、shadcn/ui)开箱即用,视觉行为由库统一;无头库(Radix、Headless UI)只给逻辑与可访问性,视觉由你接管。选型本质是在上线速度与定制自由度间权衡。

分组生态与进阶
类型第三方库
引入版本Ant Design v5、MUI v6、Radix UI 持续更新(2025)

ℹ️ 说明 编辑器将 JSX 转译为 JavaScript 后在沙箱中渲染真实界面;组件自动挂载,无需手写 render 调用。

📝 语法

# 完整组件库:npm install 后直接用
npm install antd

import { Button } from 'antd'
<Button type="primary" onClick={save}>保存</Button>

# 无头库:npm install 后自己写外观
npm install @radix-ui/react-dialog

import * as Dialog from '@radix-ui/react-dialog'
<Dialog.Root>                    {/* 逻辑:开关、焦点、无障碍由库管 */}
  <Dialog.Trigger>打开</Dialog.Trigger>
  <Dialog.Portal>{/* 视觉完全自定义 */}</Dialog.Portal>
</Dialog.Root>

⚙️ 参数

type / variant 等 props完整组件库的定制方式:通过 props 从库预设的变体中挑选外观与行为。
render / asChild无头库的定制方式:库把交互状态与事件交给你的渲染函数或子元素,视觉完全自定义。

返回值:无返回值,第三方库用法说明见示例。

▶ 示例

示例可直接运行:展开后自动渲染,编辑代码即时生效。

输出结果:

模拟演示:上半部分是 AntD 风格按钮(蓝色主要按钮、虚线按钮),外观由 props 预设变体决定;下半部分是 Headless 风格按钮(紫色胶囊),外观完全由 render 函数自定义,按住时颜色加深(pressed 状态由「库」提供)。每次点击都写入下方操作日志。全部用原生实现模拟两种 API 风格。

💡 要点

💡 提示 shadcn/ui 把基于 Tailwind + Radix 的组件源码复制进项目,介于完整库与无头库之间,近年最流行。
⚠️ 注意 完整组件库包体积较大,注意按需引入(tree-shaking)或子路径导入,避免首屏加载全部组件。
ℹ️ 说明 无头库默认零样式,但键盘导航、焦点管理、ARIA 等无障碍细节都已处理,适合深度定制的自建设计系统。
更多案例整理中,敬请期待。

📚 相关教程

❓ 常见问题

Q Ant Design 和 MUI 怎么选?
A 中后台管理系统、偏中文生态选 AntD;国际化项目、需要 Material 设计与强大主题系统选 MUI。两者都支持按需引入与深度主题定制。
Q 无头组件库适合什么场景?
A 设计稿自定义程度高、需要完全掌控视觉时选 Radix / Headless UI。它们负责弹窗焦点、键盘操作、ARIA 等难点,你只需编写样式。
Q shadcn/ui 是组件库吗?
A 严格说不是——它把基于 Tailwind + Radix 的组件源码直接复制到你的项目里,代码归你所有、可随意修改,兼具开箱即用与可定制性。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏