当前位置:首页 > VUE

antd vue实现

2026-01-14 00:06:36VUE

以下是基于 Ant Design Vue(antd-vue)实现常见功能的整理方案,涵盖基础用法和关键配置:

安装与引入

通过 npm 或 yarn 安装依赖包:

npm install ant-design-vue@next
# 或
yarn add ant-design-vue@next

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

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

const app = createApp(App)
app.use(Antd)

表单控件示例

实现带验证的表单:

<template>
  <a-form :model="formState" @finish="onSubmit">
    <a-form-item label="用户名" name="username" :rules="[{ required: true }]">
      <a-input v-model:value="formState.username" />
    </a-form-item>
    <a-form-item label="密码" name="password" :rules="[{ min: 6 }]">
      <a-input-password v-model:value="formState.password" />
    </a-form-item>
    <a-button type="primary" html-type="submit">提交</a-button>
  </a-form>
</template>

<script setup>
const formState = reactive({
  username: '',
  password: ''
})
const onSubmit = () => {
  console.log('Submitted values:', formState)
}
</script>

表格与分页

数据表格带分页功能:

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

<script setup>
const columns = [
  { title: '姓名', dataIndex: 'name' },
  { title: '年龄', dataIndex: 'age' }
]
const data = ref([])
const pagination = reactive({
  current: 1,
  pageSize: 10,
  total: 0
})

const fetchData = (params = {}) => {
  // 模拟API请求
  const mockData = Array(30).fill().map((_, i) => ({
    key: i,
    name: `用户 ${i}`,
    age: 20 + (i % 10)
  }))

  data.value = mockData.slice(
    (params.current - 1) * params.pageSize,
    params.current * params.pageSize
  )
  pagination.total = 30
}

const handleTableChange = (pag) => {
  pagination.current = pag.current
  fetchData({ ...pagination })
}

onMounted(() => fetchData(pagination))
</script>

主题定制

修改默认主题色(在 vite.config.js 中):

import { defineConfig } from 'vite'
import vitePluginImp from 'vite-plugin-imp'

export default defineConfig({
  plugins: [
    vitePluginImp({
      libList: [
        {
          libName: 'ant-design-vue',
          style: name => `ant-design-vue/es/${name}/style/css`
        }
      ]
    })
  ],
  css: {
    preprocessorOptions: {
      less: {
        modifyVars: {
          'primary-color': '#1DA57A',
          'border-radius-base': '4px'
        },
        javascriptEnabled: true
      }
    }
  }
})

注意事项

  • 按需引入需配合 unplugin-vue-components 插件
  • 表单验证规则支持异步验证函数
  • 表格组件需设置 rowKey 属性用于 Vue 的 diff 算法优化
  • 主题变量覆盖需参考官方提供的 default.less 变量列表

antd vue实现

标签: antdvue
分享给朋友:

相关文章

vue实现添加用户

vue实现添加用户

Vue 实现添加用户功能 数据绑定与表单设计 在 Vue 中实现添加用户功能,首先需要设计一个表单,用于收集用户输入的数据。通过 v-model 实现双向数据绑定,确保表单数据与 Vue 实例中的数据…

vue实现条件判断

vue实现条件判断

Vue 条件判断实现方法 Vue 提供了多种方式实现条件判断,可以根据不同场景选择合适的方式。 v-if / v-else-if / v-else 这是 Vue 中最常用的条件渲染指令,根据表达式…

vue实现签约合作弹窗

vue实现签约合作弹窗

实现签约合作弹窗的步骤 使用Vue实现签约合作弹窗可以通过组件化方式完成,结合模态框和表单交互逻辑。以下是具体实现方法: 1. 创建弹窗组件 新建一个Vue组件文件(如SignContractDia…

vue实现活动倒计时

vue实现活动倒计时

实现活动倒计时的基本思路 在Vue中实现活动倒计时通常需要获取当前时间与活动结束时间的差值,并将其转换为天、小时、分钟、秒的格式展示。通过定时器每秒更新显示的时间。 定义倒计时数据 在Vue组件的…

vue实现一个标签选择

vue实现一个标签选择

Vue 标签选择组件实现 基础实现 使用 Vue 的 v-for 和 v-model 指令可以快速实现标签选择功能: <template> <div class="tag-s…

实现vue

实现vue

安装Vue.js 通过npm安装Vue.js是最常见的方式。确保已安装Node.js和npm,运行以下命令: npm install vue 或者使用CDN直接引入: <script src…