当前位置:首页 > VUE

antd vue实现

2026-01-14 00:06:36VUE

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

安装与引入

通过 npm 或 yarn 安装依赖包:

antd vue实现

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)

表单控件示例

实现带验证的表单:

antd vue实现

<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 变量列表

标签: antdvue
分享给朋友:

相关文章

vue el 实现

vue el 实现

Vue 中使用 Element UI (el) 的实现方法 Element UI 是一个基于 Vue 的组件库,提供丰富的 UI 组件,常用于快速构建企业级中后台产品。以下介绍 Vue 项目中集成和使…

vue mvvm实现

vue mvvm实现

Vue MVVM 实现原理 Vue.js 是一个基于 MVVM(Model-View-ViewModel)模式的框架,其核心是通过数据绑定和响应式系统实现视图与数据的自动同步。以下是 Vue 实现 M…

vue实现气泡

vue实现气泡

Vue 实现气泡效果的方法 在 Vue 中实现气泡效果可以通过 CSS 动画、第三方库或自定义组件完成。以下是几种常见实现方式: 使用纯 CSS 和 Vue 过渡 通过 Vue 的过渡系统结合 CS…

vue实现spa

vue实现spa

Vue 实现 SPA(单页应用)的步骤 创建 Vue 项目 使用 Vue CLI 快速初始化一个 Vue 项目,确保安装了 Vue Router 作为路由管理工具。运行以下命令创建项目: vue c…

原生实现vue功能

原生实现vue功能

原生JavaScript实现Vue核心功能 使用原生JavaScript模拟Vue的核心功能需要理解响应式数据绑定、虚拟DOM和组件系统等概念。以下是关键实现方法: 响应式数据系统 通过Object…

vue实现展开收缩

vue实现展开收缩

Vue实现展开收缩功能 使用Vue实现展开收缩功能可以通过v-show或v-if指令结合点击事件来控制元素的显示与隐藏。以下提供几种常见实现方式: 基础实现(v-show) <template…