图秀主页
56.67M · 2026-02-04
同样我也要感谢在这个过程中给我们提交问题、建议和 PR 的社区朋友们!
很早开始接触 Ant Design,就被它完整、严谨、系统化的设计语言深深吸引。 不管是视觉规范、组件一致性,还是 Design Token 的工程化落地,它始终是国内最具代表性的设计系统之一。
因此,在 Vue 项目中,我们也长期优先选择 Ant Design Vue。
但现实是残酷的:
与此同时,Ant Design 官方开始推进 v6 架构,全面引入 Design Token、CSS 变量、运行时样式系统。这让我们第一次清晰地看到:
于是,一个念头开始发酵:
最终,我们决定: 基于 Ant Design v6 设计体系,从零重建一套真正面向 Vue 的组件库。
这就是 Antdv Next 的起点。
这是一个必须讲清楚的事实:
我们是直接以 Ant Design v6(React)作为源设计体系,再结合 Vue 的使用范式重新实现。
这意味着:
这也是为什么我们提供了明确的迁移文档,但同时也不建议已经稳定运行的项目盲目迁移。
在 Ant Design 中,大量 API 带有明显的 React 语义,例如:
classNames
rootClassName
在 Antdv Next 中,我们统一调整为:
classNames → classesrootClassName → rootClass这是一次“语义层”的去 React 化: 不是为了区别,而是为了让 Vue 用户读起来更自然。
React 使用 children 作为内容承载模型。
Vue 有插槽,这是语言级的能力。
因此在 Antdv Next 中:
并且,我们统一了一套渲染语义:
| 语义 | 插槽名 |
|---|---|
| 标签渲染 | labelRender |
| 内容渲染 | contentRender |
| 扩展区域 | extraRender |
| 图标渲染 | iconRender |
| ... | ...Render |
这套命名将成为整个库的长期规范。
在 React 中常见这样的渲染函数:
(originNode, extra) => ReactNode
在 Antdv Next 中,我们统一为:
(ctx: {
originNode: VueNode
extra: {
OkBtn: VNode
CancelBtn: VNode
}
}) => VNode
这样做的好处是:
我们同步了 Ant Design v6 的 cssinjs 架构,并做了两层优化:
零运行时模式(zeroRuntime)
antd.css<style>非零运行时
目标只有一个: 性能不再因为主题系统而成为瓶颈。
bodyCell / headerCell如果你在表格中使用:
v-model="record.xxx"
这类写法需要迁移,因为内部是浅响应式代理。
这是一次为了性能与一致性做出的取舍。
a-form-rest我们不仅支持:
llm.txtllm.full.txt还支持 Agent Skills 模型:
pnpx skills add antdv-next/skills
配合 antfu/skills 使用,可以:
这是我们对“AI 友好型文档系统”的一次工程实验。
后续我们最主要的工作重点:
vue下更合理的使用方式;nuxt;这是我们目前的一些计划,如果您有新的想法,也可以在github上给我们提交Issue和建议
Antdv Next v1.0 并不意味着完成,而是我们终于敢对外说:它可以被使用了。
如果你在使用过程中遇到问题,请通过 Issue 反馈。 如果你愿意参与共建,请提交 PR。
这是一个长期工程,不属于某个人,它属于社区,如果后续真的发生了我因为某些原因无法继续维护的时候,
我寻找在我们团队成员中寻找下一位接任者,把所有权限都放给他,做到无缝交接,希望这个项目能真正的持续下去。
项目地址
如果你愿意,点一颗 ⭐,感谢您的支持!