当前位置:首页 > 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 中):

antd vue实现

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实现按卡片轮播

vue实现按卡片轮播

实现卡片轮播的基本思路 在Vue中实现卡片轮播可以通过结合v-for指令和动态样式绑定完成。核心是维护一个当前显示卡片的索引,通过CSS过渡效果实现平滑切换。 基础实现步骤 模板部分 使用v-for…

vue无限菜单怎么实现

vue无限菜单怎么实现

实现 Vue 无限菜单的方法 递归组件实现嵌套菜单 使用 Vue 的递归组件特性可以轻松实现无限级嵌套菜单。通过组件调用自身的方式处理嵌套数据。 <template> <ul&…

vue前端实现下载进度

vue前端实现下载进度

实现下载进度条的基本思路 在Vue中实现下载进度条,通常需要结合XMLHttpRequest或Fetch API来监听下载进度事件。通过计算已下载数据与总数据的比例,动态更新进度条的显示。 使用XM…

vue实现app

vue实现app

Vue 实现 App 的常见方法 使用 Vue 开发移动端 App 主要有两种主流方案:混合开发(Hybrid)和原生渲染。以下是具体实现方式和工具链: 混合开发方案(WebView 嵌入) 通过…

vue 全景实现

vue 全景实现

Vue 全景实现方案 在Vue中实现全景效果,通常需要结合WebGL或第三方库来处理3D场景渲染。以下是几种常见方法: 使用Three.js库 Three.js是一个强大的WebGL库,适合创建3D…

vue 实现后退

vue 实现后退

实现后退功能的方法 在Vue中实现后退功能通常需要结合浏览器历史记录API或Vue Router的导航方法。以下是几种常见的实现方式: 使用Vue Router的go方法 this.$router…