如何在vue3.0中友好的使用antdv

如何在vue3.0中友好的使用antdv


随着咱们vue3.0的出现,咱们的ui组件库也有了一些变化,像咱们的旧版的element-ui已经不能在vue3.0中使用了,若是要使用element的话须要使用最新版的element-plus,因为发现它并不太好用,所以我选择了Ant Design Vue。javascript

若是咱们之前常常使用antd的话,咱们使用起来这个上手会很是方便。css

在vue3.0中引入咱们的antdv

1.首先使用咱们的vue/cli建立vue3.0项目并使用less
2. 在vue3.0中使用的话咱们须要安装ant-design-vue@next版本,安装完以后,咱们只须要在main.js文件中把antdv引入到全局(因为博主比较懒,为了省事,并无按需加载),这样咱们就可使用全部的组件了(icon除外)。若是想按需加载请参考 官方文档vue

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.config.productionTip = false;app.use(Antd);

在项目中使用图标(icon)

在咱们vue3.0中咱们使用icon须要在咱们使用的地方额外的引入咱们的icon库,以下写法java

import { UserOutlined } from '@ant-design/icons-vue';

因为咱们的vue的标签并不支持驼峰命名法,在咱们的template中使用的时候须要,换成短横线的链接的方式以下:element-ui

<user-outlined />

在项目中定制主题(遇坑)

antd 的样式使用了 Less 做为开发语言,并定义了一系列全局/组件的样式变量,你能够根据需求进行相应调整。
咱们有两种方式能够定制主题:一是建立咱们的vue.config.js文件进行配置,二是建立一个less文件进行变量覆盖。antd

  1. 建立vue.config.js文件
module.exports = {
  css: {loaderOptions: {  less: {lessOptions: {  modifyVars: {'primary-color': '#1DA57A','link-color': '#1DA57A','border-radius-base': '2px',  },  javascriptEnabled: true,},  },},
  },};

而且咱们要把main中改成以下app

import { createApp } from 'vue';import Antd from 'ant-design-vue';import App from './App';- import 'ant-design-vue/dist/antd.css';+ import 'ant-design-vue/dist/antd.less';const app = createApp();app.config.productionTip = false;app.use(Antd);

通过这个配置后咱们可能会发现咱们的主题并无生效。他不报错也没有任何提示,这个时候我又去看文档发现本身遗漏了很重要的一条信息,以下图:
在这里插入图片描述less

咱们的这个less-loader必须是6.0.0的
可是这个啥时候我看vue/cli中默认下载的是5.0.0的包。所以在把less-loader升级到6.0.0以后,问题也就解决了。
2. 创建一个单独的 less 变量文件,引入这个文件覆盖 antd.less 里的变量。ide

@import '~ant-design-vue/dist/antd.less'; // 引入官方提供的 less 样式入口文件@import 'your-theme-file.less'; // 用于覆盖上面定义的变量


按需加载很重要!!! 可是因为博主很懒。暂时尚未在vue3.0尝试。ui

相关文章
相关标签/搜索