学习使用 Ant Design of Vue

简言

Ant Design of Vue 是 Ant Design 的 Vue 实现,开发和服务于企业级后台产品。
为什么不用elementUI呢?因为。。。我最近在使用ant design vue。当然,你也可以使用elementUI,使用ui框架可以快速敏捷开发,个人项目无所谓。

使用ant design vue

下载包

项目路径下npm拉取包

npm i --save ant-design-vue

注册

全局完整注册

以上代码便完成了 Antd 的全局注册。需要注意的是,样式文件需要单独引入。

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

const app = createApp(App);

app.use(Antd).mount('#app');

全局按需注册

import { createApp } from 'vue';
import { Button, message } from 'ant-design-vue';
import App from './App';

const app = createApp(App);

/* 会自动注册 Button 下的子组件, 例如 Button.Group */
app.use(Button).mount('#app');

app.config.globalProperties.$message = message;

局部注册

此种方式需要分别注册组件子组件,如 Button、ButtonGroup,并且注册后仅在当前组件中有效。所以我们推荐使用上述两种方式。

<template>
  <a-button>Add</a-button>
</template>
<script>
  import { Button } from 'ant-design-vue';
  const ButtonGroup = Button.Group;

  export default {
    components: {
      AButton: Button,
      AButtonGroup: ButtonGroup,
    },
  };
</script>

注册实操

为了方便,我们直接全局完整注册,另外注册下全局属性消息提示。

import { createApp } from 'vue'
import App from './App.vue'
//  router
import router from './router/index'
//  pinia
import pinia from './store'
//  自定义指令
import moveEnter from './utils/moveEnter'

//  注册 ant design vue
import antdV from 'ant-design-vue'
import { message } from 'ant-design-vue'
import 'ant-design-vue/dist/antd.css';
//  vue实例
const app = createApp(App)
app.use(router)
app.use(pinia)

app.use(antdV)
app.mount('#app')

app.directive('move-enter', moveEnter)

//  定义全局属性
app.config.globalProperties.$message = message
app.provide('$message', message)

定制主题

ant design vue 支持自定义主题。ant-design-vue 的组件结构及样式和 Antd React 完全一致,你可以参考 Antd React 的定制方式进行配置。antd 的样式使用了 Less 作为开发语言,并定义了一系列全局/组件的样式变量,你可以根据需求进行相应调整。我们使用 modifyVars 的方式来进行覆盖变量。

下载less

npm install less
npm install less-loader -D

配置主题文件

在assets/css下创建theme.less文件。在官网复制定义好的less变量,修改它们即可。

/**
  ant design vue 主题样式全局变量
*/
 
  @primary-color: #c77533; // 全局主色
  @link-color: #1890ff; // 链接色
  @success-color: #52c41a; // 成功色
  @warning-color: #faad14; // 警告色
  @error-color: #f5222d; // 错误色
  @font-size-base: 14px; // 主字号
  @heading-color: rgba(0, 0, 0, 0.85); // 标题色
  @text-color: rgba(0, 0, 0, 0.65); // 主文本色
  @text-color-secondary: rgba(0, 0, 0, 0.45); // 次文本色
  @disabled-color: rgba(0, 0, 0, 0.25); // 失效色
  @border-radius-base: 2px; // 组件/浮层圆角
  @border-color-base: #d9d9d9; // 边框色
  @box-shadow-base: 0 2px 8px rgba(0, 0, 0, 0.15); // 浮层阴影

在vite.config.ts中修改less插件配置。

export default  defineConfig({
    css: {
      preprocessorOptions: {
        less: {
          modifyVars: {
            hack: 'true; @import "@/assets/css/theme.less"',
          },
          javascriptEnabled: true,
        }
      },
    },
  })

最后在main.ts引入的antd的全局样式文件后缀.css改成less,以便完成覆盖即可。
在这里插入图片描述

效果

另外为了方便查看css样式来源,在vite.config.ts的css配置项中可以开启sourcemap。

css:{
devSourcemap: true, //  开启sourcemap
}

在这里插入图片描述

结语

除了自定义主题外,还有国际化的配置,如果需要,可以去官网国际化了解。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZSK6

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值