Vue antdv 定制主題配置(高低版本配置問題)


一、簡介

  • 在使用 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')

       

    • 重新運行項目,查看效果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM