资讯动态

Ant Design Vue 4.x 入门指南:项目创建、组件注册与按需引入全解析

发布时间:2026/9/20 9:06:11 来源:尧图企业网站定制
Ant Design Vue 4.x 入门指南项目创建、组件注册与按需引入全解析【免费下载链接】ant-design-vue An enterprise-class UI components based on Ant Design and Vue. 项目地址: https://gitcode.com/gh_mirrors/an/ant-design-vue本篇基于 ant-design-vue 仓库的官方入门文档getting-started.en-US.md展开完整覆盖从环境准备、创建 Vue 项目、安装ant-design-vue4.x到三种组件注册方式、按需引入Tree Shaking与主题定制的落地流程并结合仓库源码说明每种用法背后的实现机制读完即可在真实项目中正确接入 Ant Design Vue 4.x。一、环境准备与前置知识在开始之前官方文档明确了两个前置条件Node.js文档要求已正确安装 Node.js v8.9。需要注意的是当前仓库 package.json 的engines字段声明为node 12.22.0因此以仓库实际声明为准建议使用不低于 12.22 的 Node 版本基础能力文档建议先具备 Vue 与 JavaScript ES2015Babel 编译后的现代语法的基础因为 Ant Design Vue 4.x 完全基于 Vue 3 的 Composition API 体系构建。另外package.json 中peerDependencies声明了vue: 3.2.0即 4.x 版本仅面向 Vue 3.2 及以上项目这是版本选型时必须满足的前提。二、Playground最快体验与 Bug 复现习惯官方文档推荐通过 CodeSandbox 等在线 Playground 快速体验最简单的使用案例一个引入 antd 模板的沙箱 Demo。文档同时给出了一个值得养成的工程习惯在报告 Bug 之前先 fork 该 Demo 并基于它复现问题这样能提供一个可复现的最小环境极大提高问题定位效率。三、创建新项目官方文档列出了三种创建新项目的工具并给出了各自的初始化命令1. Vite$ npm create vitelatest2. Rsbuild$ npm create rsbuildlatest3. Vue CLI$ npm install -g vue/cli # OR $ yarn global add vue/cli $ vue create antd-demo官方文档特别提醒Vue CLI 已不再维护不推荐使用。新项目建议优先选择 Vite 或 Rsbuild。四、安装 ant-design-vue在项目中使用 antd 组件前先安装 4.x 版本$ npm i --save ant-design-vue4.x当前仓库的版本号为 4.2.6安装时指定4.x即可锁定到这一系列版本。五、组件注册三种方式对比若使用 Vue 的默认模板语法需要先注册组件才能使用。官方文档给出了三种注册方式以下逐一介绍并用仓库源码印证其行为。方式一全局注册全部组件推荐整体引入时使用import { createApp } from vue; import Antd from ant-design-vue; import App from ./App; import ant-design-vue/dist/reset.css; const app createApp(App); app.use(Antd).mount(#app);这段代码整体引入了 Antd。官方文档特别强调CSS 文件reset.css需要单独引入。从源码看app.use(Antd)触发的是 components/index.ts 中的install函数它的实际工作包括遍历 components/components.ts 导出的全部组件对带install方法的组件逐一执行app.use(component)完成全局注册注册cssinjs.StyleProvider即app.use(cssinjs.StyleProvider)这是 4.x 版本 CSS-in-JS 主题体系能够注入样式的前提挂载一批全局 API 到app.config.globalProperties$message、$notification以及Modal派生的$info、$success、$error、$warning、$confirm、$destroyAll。也就是说全局注册不只是能用a-button还顺带接通了message/notification/Modal.confirm这套命令式 API 的全局桥接。方式二全局注册部分组件推荐import { createApp } from vue; import { Button, message } from ant-design-vue; import App from ./App; const app createApp(App); /* Automatically register components under Button, such as Button.Group */ app.use(Button).mount(#app); app.config.globalProperties.$message message;这里app.use(Button)能自动注册 Button 的子组件如Button.Group这一行为可以直接在源码中验证components/button/index.ts 中Button.install会同时调用app.component(Button.name, Button)和app.component(ButtonGroup.name, ButtonGroup)而ButtonGroup正是通过Button.Group ButtonGroup第 11 行挂载在 Button 上的。文档同时给出一个关键点message这类命令式 API 不是组件无法通过组件注册生效需要手动挂到globalProperties上才能在模板中通过$message调用。方式三局部注册template a-buttonAdd/a-button /template script import { Button } from ant-design-vue; const ButtonGroup Button.Group; export default { components: { AButton: Button, AButtonGroup: ButtonGroup, }, }; /script这种方式下Button、ButtonGroup等子组件需要分开逐个注册且只在当前组件内有效。因此官方文档明确建议优先使用上面两种方式。三种方式怎么选方式子组件注册作用域适用场景全局注册全部自动所有组件全局组件用量大、追求开发效率全局注册部分自动如Button.Group全局使用组件种类少兼顾效率与体积局部注册手动逐个当前组件单一页面、临时使用六、组件清单官方文档指向的完整组件清单对应仓库中的 components/components.ts该文件集中导出了全部公开组件及其 Props 类型可据此查阅 4.x 提供的全部组件与子组件命名例如基础组件Button、ButtonGroup、Checkbox、CheckboxGroup、Input、InputPassword、InputSearch、Textarea等表单类Form、FormItem、Select、SelectOption、SelectOptGroup、DatePicker、MonthPicker、WeekPicker、RangePicker、QuarterPicker、TimePicker、TimeRangePicker、Cascader、TreeSelect等数据展示类Table、TableColumn、TableSummary、Descriptions、DescriptionsItem、List、ListItem、ListMeta、Card、CardGrid、CardMeta、Statistic、StatisticCountdown等导航类Menu、MenuItem、SubMenu、Breadcrumb、Dropdown、Pagination、Steps、TabPane、Anchor、PageHeader等反馈类Modal、Drawer、message、notification、Alert、Popconfirm、Tooltip、Progress、Spin、Result、Skeleton及其子组件等。七、按需引入与 Tree Shaking官方文档指出ant-design-vue支持 ES 模块的 tree shaking因此import { Button } from ant-design-vue;这种写法即可让打包工具丢弃未使用的 JS 代码。仓库中有两处配置印证了这一点package.json 同时声明了main: lib/index.jsCommonJS与module: es/index.jsESM 入口支持 tree shaking 的打包工具Vite、Rsbuild、Webpack 等会优先走module字段的 ESM 产物package.json 的sideEffects字段精确声明了哪些文件有副作用site/*、*.vue、*.md、dist/*、*.css。组件代码本身被标记为无副作用这正是打包器敢于安全剔除未引用组件的代码依据而样式文件*.css被保留在副作用清单中所以全局引入时dist/reset.css必须单独 import才能确保样式不被摇掉。此外仓库根目录还暴露了三个便于理解的入口文件index.esm.js 直接export * from ./componentsindex.js 在样式文件加载后导出组件index-style-only.js 则按/^\.\/[^_][\w-]\/style\/index\.tsx?$/的正则批量加载各组件样式并做 PascalCase 归一化导出message、notification保持小写。从源码结构看它们面向不同打包场景提供了 CJS/ESM 双入口与样式隔离的能力。八、主题定制Customization官方入门文档的Customization小节指向主题定制指南customize-theme.en-US.md核心结论如下供入门后快速衔接4.0 版本以Design Token作为影响主题的最小单元通过ConfigProvider的theme属性即可定制主题通过theme.algorithm可切换三套预设算法默认算法theme.defaultAlgorithm、暗色算法theme.darkAlgorithm与紧凑算法theme.compactAlgorithm例如template a-config-provider :theme{ algorithm: theme.darkAlgorithm } a-button / /a-config-provider /template script setup import { theme } from ant-design-vue; /script其中theme正是 components/index.ts 中export { default as theme } from ./theme导出的能力与 5 节中cssinjs.StyleProvider的自动注册共同构成 4.x 的 CSS-in-JS 主题体系。相比 3.x 的 less 变量与 CSS Variables4.0 还支持动态切换主题、多主题并存、以及按组件粒度定制 Token。九、小结本篇沿官方入门文档的主线完成了 Ant Design Vue 4.x 的接入闭环环境确认Vue 3.2.0、Node 12.22.0→ 用 Vite/Rsbuild/Vue CLI 建项 → 安装ant-design-vue4.x→ 选择全局注册全部 / 全局注册部分 / 局部注册之一完成组件注册注意reset.css的单独引入与message等命令式 API 的globalProperties挂载→ 利用 ESM 入口与sideEffects声明获得按需引入的体积收益 → 最后通过ConfigProvider Design Token 进入主题定制。所有关键行为均可以在 components/index.ts、components/components.ts 与 package.json 中找到源码级依据便于进一步深入。【免费下载链接】ant-design-vue An enterprise-class UI components based on Ant Design and Vue. 项目地址: https://gitcode.com/gh_mirrors/an/ant-design-vue创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价