VueCli4+Vant2.1定制主題配置

本來我以為主題配置應(yīng)該很簡單脆侮,按照vant官網(wǎng)上面的來不就完事了黎做。可是我自己試著做的時候并不是一番風(fēng)順的阳堕。過程可謂是曲折跋理。這篇文章是我成功之后總結(jié)出來的步驟。在這期間遇到的坑之后再記錄一次恬总。


一前普、先創(chuàng)建項(xiàng)目

在命令行輸入vue create vant-theme-test創(chuàng)建項(xiàng)目

我的環(huán)境版本

一般來說,使用vant的項(xiàng)目越驻,css預(yù)處理器一般會選擇less,所以這次我們創(chuàng)建項(xiàng)目就使用less。


選擇的配置項(xiàng)

接下來缀旁,靜等一段時間安裝完畢依賴记劈。

等安裝完畢之后,執(zhí)行 npm i vant -S 安裝Vant并巍,然后按照官網(wǎng)的教程設(shè)置“按需引入組件”——按需引入組件

二目木、引入vant的某些組件

為了方便直觀,我們把App.vue文件清空懊渡,然后引入兩個組件刽射,Grid 宮格Pagination 分頁。代碼如下

<template>
  <div id="app">
    <van-grid>
      <van-grid-item icon="photo-o" text="文字" />
      <van-grid-item icon="photo-o" text="文字" />
      <van-grid-item icon="photo-o" text="文字" />
      <van-grid-item icon="photo-o" text="文字" />
    </van-grid>
    <div style="height:20px;margin:20px;"></div>
    <van-pagination v-model="currentPage" :total-items="24" :items-per-page="5" />
  </div>
</template>
<script>
  import Vue from 'vue';
  import { Grid, GridItem, Pagination } from 'vant';

  Vue.use(Grid);
  Vue.use(GridItem);
  Vue.use(Pagination);

  export default {
    name: "App-root",
    data() {
      return {
        currentPage: 1,
      };
    },
  }
</script>

此時頁面的樣子如下:


主題未改變的樣子

這個時候我們假如我們要的主題顏色是粉色:pink
那我們按照每個組件文檔最下面的樣式變量可知我們需要修改的是 @grid-item-text-color@pagination-item-default-color 剃执。

三誓禁、開始配置定制主題色

官網(wǎng)鏈接——定制主題

我們看官網(wǎng)上有兩個地方對版本號有限制,分別是babel和less-loader


babel6

less-loader

這個時候我們需要看一下項(xiàng)目中相對應(yīng)的babel和less-loader的版本號了肾档。在命令行輸入npm list @babel/corenpm list less-loader 即可摹恰。

babel和less-loader的版本

此時babel.config.js文件的樣子是:

module.exports = {
  presets: [
    '@vue/cli-plugin-babel/preset'
  ],
  plugins: [
    ['import', {
      libraryName: 'vant',
      libraryDirectory: 'es',
      //指定樣式的路徑
      style: (name) => `${name}/style/less`,
    }, 'vant']
  ]
}

然后我們在main.js文件(在App.vue文件中引入也可以)中按需引入兩個組件的less文件。

import 'vant/lib/grid-item/style/less'
import 'vant/lib/pagination/style/less'

最后怒见,在vue.config.js中(沒有的話就重新創(chuàng)建一個)更改這兩個主題變量

// vue.config.js
module.exports = {
  css: {
    loaderOptions: {
      less: {
        modifyVars: {
          //在這里覆蓋變量俗慈,需要用那個主題變量就在這里更改
          '@grid-item-text-color': 'pink',
          '@pagination-item-default-color': 'pink',
        },
      },
    },
  },
};

設(shè)置完這些后,重新啟動 項(xiàng)目npm run serve遣耍。然后這個時候主題顏色就被改了過來闺阱。

主題改變之后的樣子

less文件覆蓋

如果需要改的變量太多,那么可以使用第二種方法——通過less文件覆蓋舵变。
在src文件夾下創(chuàng)建一個less文件:vant-modified-vars.less酣溃。(其實(shí)這個文件在哪里創(chuàng)建都無所謂,只要能找到這個文件就行)棋傍,然后將需要改寫的變量放入進(jìn)去救拉。

//vant-modified-vars.less
@grid-item-text-color: pink;
@pagination-item-default-color: pink;

然后vue.config.js文件修改一下配置選項(xiàng)

css: {
    loaderOptions: {
      less: {
        modifyVars: {
          //使用這個文件覆蓋變量,這個文件的路徑一定要是絕對路徑
          hack: `true; @import "/src/vant-modified-vars.less";`,
        },
      },
    },
  },

四瘫拣、結(jié)語

第一次寫這么長這么詳細(xì)的文章亿絮,總算是把一次解決問題的流程給記錄下來了。希望如果以后有小伙伴需要配置定制主題的時候能夠提供些幫助麸拄。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末派昧,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子拢切,更是在濱河造成了極大的恐慌蒂萎,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件淮椰,死亡現(xiàn)場離奇詭異五慈,居然都是意外死亡纳寂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門泻拦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來毙芜,“玉大人,你說我怎么就攤上這事争拐∫钢啵” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵架曹,是天一觀的道長隘冲。 經(jīng)常有香客問我,道長绑雄,這世上最難降的妖魔是什么展辞? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮绳慎,結(jié)果婚禮上纵竖,老公的妹妹穿的比我還像新娘。我一直安慰自己杏愤,他們只是感情好靡砌,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著珊楼,像睡著了一般通殃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上厕宗,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天画舌,我揣著相機(jī)與錄音,去河邊找鬼已慢。 笑死曲聂,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的佑惠。 我是一名探鬼主播朋腋,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼膜楷!你這毒婦竟也來了旭咽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤赌厅,失蹤者是張志新(化名)和其女友劉穎穷绵,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體特愿,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡仲墨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年勾缭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片目养。...
    茶點(diǎn)故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡漫拭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出混稽,到底是詐尸還是另有隱情,我是刑警寧澤审胚,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布匈勋,位于F島的核電站,受9級特大地震影響膳叨,放射性物質(zhì)發(fā)生泄漏洽洁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一菲嘴、第九天 我趴在偏房一處隱蔽的房頂上張望饿自。 院中可真熱鬧,春花似錦龄坪、人聲如沸昭雌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽烛卧。三九已至,卻和暖如春妓局,著一層夾襖步出監(jiān)牢的瞬間总放,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工好爬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留局雄,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓存炮,卻偏偏與公主長得像炬搭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子僵蛛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容