一、简介
- 在使用
ant-design-vue
时,需要修改一下全局的主题颜色,按照官方的配置流程配置失败,应该是版本问题。
二、安装 antdv
-
安装
ant-design-vue
-
$ npm i --save ant-design-vue
main.js
中配置,完整引入import Vue from 'vue' import App from './App.vue' import router from './router' import store from './store' // 引入 antdv import Antd from 'ant-design-vue'; // 这里引入的是 css 文件,后面需要自定义主题的话,需要换成 less 文件 import 'ant-design-vue/dist/antd.css'; // import 'ant-design-vue/dist/antd.less'; Vue.config.productionTip = false // 注册 antdv Vue.use(Antd); new Vue({ router, store, render: h => h(App) }).$mount('#app')
- 使用按钮,这是默认样式
<template> <!-- 使用按钮 --> <a-button type="primary">Primary</a-button> </template>
三、自定义主题样式
-
antdv
的样式使用了Less
作为开发语言,所以需要安装Less
环境。 -
参考 - 以下是一些最常用的通用变量
@primary-color: #1890ff; // 全局主色 @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: 4px; // 组件/浮层圆角 @border-color-base: #d9d9d9; // 边框色 @box-shadow-base: 0 2px 8px rgba(0, 0, 0, 0.15); // 浮层阴影
- 创建 vue.config.js,加入下面配置,注意查看一下
package.json
中less-loader
版本,根据版本选择对应的配置:// less-loader >= 6.0.0 (例如 less-loader@6.0.0) module.exports = { css: { loaderOptions: { less: { lessOptions: { // If you are using less-loader@5 please spread the lessOptions to options directly modifyVars: { // 这里就是样式变量的名称以及对应的值,可以按照上面提供的官方文档进行配置 'primary-color': '#41B883', 'link-color': '#41B883', 'border-radius-base': '2px' }, javascriptEnabled: true } } } } } // less-loader < 6.0.0 (例如 less-loader@5.0.0) module.exports = { css: { loaderOptions: { less: { // If you are using less-loader@5 please spread the lessOptions to options directly modifyVars: { // 这里就是样式变量的名称以及对应的值,可以按照上面提供的官方文档进行配置 'primary-color': '#41B883', 'link-color': '#41B883', 'border-radius-base': '2px' }, javascriptEnabled: true } } } }
main.js
中配置,css
文件调整为less
文件import Vue from 'vue' import App from './App.vue' import router from './router' import store from './store' // 引入 antdv import Antd from 'ant-design-vue'; // 这里引入的是 css 文件,后面需要自定义主题的话,需要换成 less 文件 // import 'ant-design-vue/dist/antd.css'; import 'ant-design-vue/dist/antd.less'; Vue.config.productionTip = false // 注册 antdv Vue.use(Antd); new Vue({ router, store, render: h => h(App) }).$mount('#app')
-
重新运行项目,查看效果