在 vue-cli 3 中使用Ant Design

安裝和初始化 #

我們需要在命令行中安裝 vue-cli 工具客年,你可能還需要安裝 yarn

$ npm install -g @vue/cli
# OR
$ yarn global add @vue/cli

然后新建一個項目。

$ vue create antd-demo

并配置項目魂爪。

工具會自動初始化一個腳手架并安裝 Vue 項目的各種必要依賴,如果在過程中出現(xiàn)網(wǎng)絡(luò)問題艰管,請嘗試配置代理或使用其他 npm registry滓侍。

然后我們進(jìn)入項目并啟動。

$ cd antd-demo
$ npm run serve

此時瀏覽器會訪問 http://localhost:8080/ 牲芋,看到 Welcome to Your Vue.js App 的界面就算成功了撩笆。

引入 antd #

這是 vue-cli 生成的默認(rèn)目錄結(jié)構(gòu)捺球。

├── README.md
├── babel.config
├── package.json
├── public
│   ├── favicon.ico
│   └── index.html
├── src
│   ├── assets
│   │   └── logo.png
│   ├── components
│   │   └── HelloWorld.vue
│   ├── App.vue
│   └── main.js
└── yarn.lock

現(xiàn)在從 yarn 或 npm 安裝并引入 ant-design-vue。

$ yarn add ant-design-vue

修改 src/main.js夕冲,引入 antd 的按鈕組件以及全部樣式文件氮兵。

import Vue from "vue";
import Button from "ant-design-vue/lib/button";
import "ant-design-vue/dist/antd.css";
import App from "./App";

Vue.component(Button.name, Button);

Vue.config.productionTip = false;

new Vue({
  render: h => h(App)
}).$mount("#app");

修改 src/App.vue的 template 內(nèi)容。

<template>
  <div id="app">
    <img src="./assets/logo.png">
    <a-button type="primary">Button></a-button>
  </div>
</template>
...

好了歹鱼,現(xiàn)在你應(yīng)該能看到頁面上已經(jīng)有了 antd 的藍(lán)色按鈕組件泣栈,接下來就可以繼續(xù)選用其他組件開發(fā)應(yīng)用了。其他開發(fā)流程你可以參考 vue-cli 的官方文檔弥姻。

高級配置 #

我們現(xiàn)在已經(jīng)把組件成功運行起來了南片,但是在實際開發(fā)過程中還有很多問題,例如上面的例子實際上加載了全部的 antd 組件的樣式(對前端性能是個隱患)庭敦。

此時我們需要對 vue-cli 的默認(rèn)配置進(jìn)行自定義疼进。

使用 babel-plugin-import #

babel-plugin-import 是一個用于按需加載組件代碼和樣式的 babel 插件(原理)。

$ yarn add babel-plugin-import --dev

使用 vue-cli 2 的小伙伴 #

修改.babelrc文件秧廉,配置 babel-plugin-import

  {
    "presets": [
      ["env", {
        "modules": false,
        "targets": {
          "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
        }
      }],
      "stage-2"
    ],
-   "plugins": ["transform-vue-jsx", "transform-runtime"]
+   "plugins": [
+     "transform-vue-jsx",
+     "transform-runtime",
+     ["import", { "libraryName": "ant-design-vue", "libraryDirectory": "es", "style": "css" }]
+   ]
  }

使用 vue-cli 3 的小伙伴 #

修改babel.config.js文件颠悬,配置 babel-plugin-import

 module.exports = {
  presets: ["@vue/app"],
+  plugins: [
+    [
+      "import",
+      { libraryName: "ant-design-vue", libraryDirectory: "es", style: true }
+    ]
+  ]
};

然后移除前面在 src/main.js 里全量添加的 import 'ant-design-vue/dist/antd.css'; 樣式代碼,并且按下面的格式引入模塊定血。

  // src/main.js
  import Vue from 'vue'
- import Button from 'ant-design-vue/lib/button';
+ import { Button } from 'ant-design-vue';
- import 'ant-design-vue/dist/antd.css'
  import App from './App'

  Vue.component(Button.name, Button)

  Vue.config.productionTip = false

  new Vue({
    render: h => h(App)
  }).$mount("#app");

最后重啟 npm run serve 訪問頁面赔癌,antd 組件的 js 和 css 代碼都會按需加載,你在控制臺也不會看到這樣的警告信息澜沟。關(guān)于按需加載的原理和其他方式可以閱讀這里灾票。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市茫虽,隨后出現(xiàn)的幾起案子刊苍,更是在濱河造成了極大的恐慌,老刑警劉巖濒析,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件正什,死亡現(xiàn)場離奇詭異,居然都是意外死亡号杏,警方通過查閱死者的電腦和手機婴氮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盾致,“玉大人主经,你說我怎么就攤上這事⊥ハВ” “怎么了罩驻?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長护赊。 經(jīng)常有香客問我惠遏,道長砾跃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任节吮,我火速辦了婚禮蜓席,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘课锌。我一直安慰自己,他們只是感情好祈秕,可當(dāng)我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布渺贤。 她就那樣靜靜地躺著,像睡著了一般请毛。 火紅的嫁衣襯著肌膚如雪志鞍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天方仿,我揣著相機與錄音固棚,去河邊找鬼。 笑死仙蚜,一個胖子當(dāng)著我的面吹牛此洲,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播委粉,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼呜师,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了贾节?” 一聲冷哼從身側(cè)響起汁汗,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎栗涂,沒想到半個月后知牌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡斤程,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年角寸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忿墅。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡袭厂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出球匕,到底是詐尸還是另有隱情纹磺,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布亮曹,位于F島的核電站橄杨,受9級特大地震影響秘症,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜式矫,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一乡摹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧采转,春花似錦聪廉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至察绷,卻和暖如春干签,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拆撼。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工容劳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人闸度。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓竭贩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親莺禁。 傳聞我的和親對象是個殘疾皇子娶视,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,630評論 2 359

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