Ant Design Vue UI Library
raw JSON →Ant Design Vue is an enterprise-class UI component library based on the Ant Design specification, specifically implemented for Vue.js applications. It provides a comprehensive set of high-quality, out-of-the-box components tailored for desktop application development. The library is currently stable at version 4.2.6, with frequent patch releases addressing bug fixes and minor improvements, and larger minor versions introducing new features and optimizations every few months. Its key differentiators include adherence to the well-established Ant Design system, robust TypeScript support (shipping its own types), and strong compatibility with modern Vue 3 ecosystems, including SSR and Electron environments. It offers a structured and opinionated approach to UI development, promoting consistency and reusability.
Common errors
error [Vue warn]: Failed to resolve component: a-button ↓
import { Button } from 'ant-design-vue'; and register it locally in your component's components option, or globally via app.use(Button);. error Error: `message` is not a function or is undefined ↓
<a-app> component from Ant Design Vue. Alternatively, if using ConfigProvider directly without App, manually provide it: app.config.globalProperties.$message = message; after importing message. error TypeError: Cannot read properties of undefined (reading 'setup') in your build output or console ↓
^3.2.0 or higher, as Ant Design Vue v4.x requires Vue 3. Warnings
breaking Ant Design Vue v4.x introduced significant breaking changes from v3.x, especially regarding styling, theme customization, and component APIs. Direct migration without consulting the official migration guide will lead to errors. ↓
breaking Ant Design Vue v3.x and earlier versions supported Vue 2.x and Vue 3.x with separate packages or branches. Version 4.x is exclusively for Vue 3.x, requiring a Vue 3.2.0+ peer dependency. ↓
gotcha Default styling might not load if the `ant-design-vue/dist/reset.css` or `ant-design-vue/dist/antd.min.css` (for older versions) is not explicitly imported into your project. Components will appear unstyled. ↓
gotcha Global utility functions like `message`, `notification`, and `Modal.confirm` are often used without being properly provided by the `App` component or globally imported, leading to errors or inconsistent styling. ↓
Install
npm install ant-design-vue yarn add ant-design-vue pnpm add ant-design-vue Imports
- Button wrong
const Button = require('ant-design-vue/lib/button');correctimport { Button } from 'ant-design-vue'; - ConfigProvider wrong
import ConfigProvider from 'ant-design-vue/es/config-provider';correctimport { ConfigProvider } from 'ant-design-vue'; - App wrong
import * as Antd from 'ant-design-vue';correctimport { App } from 'ant-design-vue'; - Table wrong
import Table from 'ant-design-vue/lib/table';correctimport { Table } from 'ant-design-vue';
Quickstart
import { createApp } from 'vue';
import { Button, ConfigProvider, Table, message } from 'ant-design-vue';
import 'ant-design-vue/dist/reset.css';
const App = {
setup() {
const columns = [
{ title: 'Name', dataIndex: 'name', key: 'name' },
{ title: 'Age', dataIndex: 'age', key: 'age' },
{ title: 'Address', dataIndex: 'address', key: 'address' },
];
const data = [
{ key: '1', name: 'John Brown', age: 32, address: 'New York No. 1 Lake Park' },
{ key: '2', name: 'Jim Green', age: 42, address: 'London No. 1 Lake Park' },
{ key: '3', name: 'Joe Black', age: 32, address: 'Sidney No. 1 Lake Park' },
];
const showMessage = () => {
message.info('Hello from Ant Design Vue!');
};
return {
columns,
data,
showMessage,
};
},
template: `
<ConfigProvider>
<div style="padding: 24px;">
<h1>Ant Design Vue Quickstart</h1>
<Button type="primary" @click="showMessage">Show Message</Button>
<br/><br/>
<Table :columns="columns" :data-source="data" />
</div>
</ConfigProvider>
`,
};
createApp(App)
.use(Button)
.use(ConfigProvider)
.use(Table)
.mount('#app');
// To run this, create an index.html with <div id="app"></div> and include a script tag for this code.
// Ensure you have Vue 3 and ant-design-vue installed in your project.
// e.g., <script type="module"> // Your quickstart code </script>