随着咱们vue3.0的出现,咱们的ui组件库也有了一些变化,像咱们的旧版的element-ui已经不能在vue3.0中使用了,若是要使用element的话须要使用最新版的element-plus,因为发现它并不太好用,所以我选择了Ant Design Vue。javascript
若是咱们之前常常使用antd的话,咱们使用起来这个上手会很是方便。css
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);
在咱们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
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