当前位置:首页 > VUE

antd vue 实现

2026-01-12 11:22:27VUE

以下是基于 Ant Design Vue 实现常见功能的整理,涵盖组件使用、表单处理、表格集成等核心场景:

安装与基础配置

确保项目已配置 Vue 3 环境,通过以下命令安装 Ant Design Vue:

npm install ant-design-vue@next

main.js 中全局引入样式和组件:

antd vue 实现

import { createApp } from 'vue';
import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/antd.css';
import App from './App.vue';

const app = createApp(App);
app.use(Antd);
app.mount('#app');

表单控件实现

使用 a-forma-form-item 构建带验证的表单:

<template>
  <a-form :model="formState" @finish="handleSubmit">
    <a-form-item 
      label="用户名" 
      name="username"
      :rules="[{ required: true, message: '请输入用户名' }]">
      <a-input v-model:value="formState.username" />
    </a-form-item>
    <a-form-item>
      <a-button type="primary" html-type="submit">提交</a-button>
    </a-form-item>
  </a-form>
</template>

<script setup>
import { reactive } from 'vue';
const formState = reactive({ username: '' });
const handleSubmit = () => {
  console.log('表单数据:', formState);
};
</script>

表格与分页

集成 a-table 并绑定分页逻辑:

antd vue 实现

<template>
  <a-table 
    :columns="columns" 
    :data-source="data" 
    :pagination="pagination"
    @change="handleTableChange">
  </a-table>
</template>

<script setup>
import { ref } from 'vue';
const columns = [
  { title: '姓名', dataIndex: 'name' },
  { title: '年龄', dataIndex: 'age' }
];
const data = ref([
  { key: '1', name: '张三', age: 30 },
  { key: '2', name: '李四', age: 25 }
]);
const pagination = ref({
  current: 1,
  pageSize: 10,
  total: 50
});
const handleTableChange = (pag) => {
  pagination.value.current = pag.current;
  // 此处调用API加载新数据
};
</script>

模态框与交互

通过 a-modal 实现动态弹窗:

<template>
  <a-button @click="showModal">打开弹窗</a-button>
  <a-modal 
    v-model:visible="visible" 
    title="标题" 
    @ok="handleOk">
    <p>弹窗内容...</p>
  </a-modal>
</template>

<script setup>
import { ref } from 'vue';
const visible = ref(false);
const showModal = () => { visible.value = true; };
const handleOk = () => { visible.value = false; };
</script>

主题定制

vue.config.js 中通过 less-loader 修改主题色:

module.exports = {
  css: {
    loaderOptions: {
      less: {
        lessOptions: {
          modifyVars: { '@primary-color': '#1DA57A' },
          javascriptEnabled: true
        }
      }
    }
  }
};

注意事项

  • 图标需单独引入:import { UserOutlined } from '@ant-design/icons-vue';
  • Vue 3 需使用 v-model:value 而非 v-model
  • 表单验证规则支持异步验证(validator

标签: antdvue
分享给朋友:

相关文章

vue实现密码

vue实现密码

Vue 密码输入组件实现 基础密码输入框实现 使用 Vue 的 v-model 指令绑定数据,并通过 type="password" 设置输入类型为密码: <template> &…

vue如何实现注册

vue如何实现注册

实现用户注册功能 在Vue中实现注册功能通常需要结合前端表单和后端API交互。以下是完整的实现方案: 创建注册表单组件 注册表单需要包含用户名、邮箱、密码等基本字段,并进行表单验证: <te…

vue实现多层评论回复

vue实现多层评论回复

Vue 实现多层评论回复 数据结构设计 多层评论通常采用嵌套结构,每个评论对象包含子评论数组。示例数据结构如下: comments: [ { id: 1, content: '父…

vue表格重置怎么实现

vue表格重置怎么实现

重置表格数据的方法 在Vue中重置表格数据通常需要操作绑定的数据源,以下是几种常见实现方式: 直接重置数据源 // 假设表格绑定的是tableData this.tableData = [..…

vue查看更多怎么实现

vue查看更多怎么实现

实现 Vue 的“查看更多”功能 数据截取与显示控制 通过 v-if 或 v-show 控制内容的显示与隐藏。初始状态下只显示部分内容,点击“查看更多”后展开完整内容。 <template&g…

vue实现无线滚动列表

vue实现无线滚动列表

无限滚动列表的实现方法 在Vue中实现无限滚动列表通常结合监听滚动事件和动态加载数据。以下是几种常见方法: 使用自定义指令 创建自定义指令v-infinite-scroll监听滚动事件: Vu…