Vue-Element入門(二、按需加載和全局配置)

按需加載

1.對項目進行打包

 npm run build

2.安裝babel-plugin-component插件

npm install babel-plugin-component -D

3.將 babel.config.js文件修改為以下內(nèi)容

module.exports = {
  presets: [
    '@vue/cli-plugin-babel/preset'
  ],
  "plugins": [
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "theme-chalk"
      }
    ]
  ]
}

4.按需在src/main.js文件下引入ButtonMessage

import Vue from 'vue';
import App from './App.vue';
import 'element-ui/lib/theme-chalk/index.css';
import { Button, Message } from 'element-ui';

Vue.component(Button.name, Button);
/* 或?qū)憺? * Vue.use(Button);
 */
Vue.prototype.$message = Message;

Vue.config.productionTip = false;

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

以下為完整組件列表和引入方式(完整組件列表以 components.json 為準)

import Vue from 'vue';
import {
  Pagination,
  Dialog,
  Autocomplete,
  Dropdown,
  DropdownMenu,
  DropdownItem,
  Menu,
  Submenu,
  MenuItem,
  MenuItemGroup,
  Input,
  InputNumber,
  Radio,
  RadioGroup,
  RadioButton,
  Checkbox,
  CheckboxButton,
  CheckboxGroup,
  Switch,
  Select,
  Option,
  OptionGroup,
  Button,
  ButtonGroup,
  Table,
  TableColumn,
  DatePicker,
  TimeSelect,
  TimePicker,
  Popover,
  Tooltip,
  Breadcrumb,
  BreadcrumbItem,
  Form,
  FormItem,
  Tabs,
  TabPane,
  Tag,
  Tree,
  Alert,
  Slider,
  Icon,
  Row,
  Col,
  Upload,
  Progress,
  Spinner,
  Badge,
  Card,
  Rate,
  Steps,
  Step,
  Carousel,
  CarouselItem,
  Collapse,
  CollapseItem,
  Cascader,
  ColorPicker,
  Transfer,
  Container,
  Header,
  Aside,
  Main,
  Footer,
  Timeline,
  TimelineItem,
  Link,
  Divider,
  Image,
  Calendar,
  Backtop,
  PageHeader,
  CascaderPanel,
  Loading,
  MessageBox,
  Message,
  Notification
} from 'element-ui';

Vue.use(Pagination);
Vue.use(Dialog);
Vue.use(Autocomplete);
Vue.use(Dropdown);
Vue.use(DropdownMenu);
Vue.use(DropdownItem);
Vue.use(Menu);
Vue.use(Submenu);
Vue.use(MenuItem);
Vue.use(MenuItemGroup);
Vue.use(Input);
Vue.use(InputNumber);
Vue.use(Radio);
Vue.use(RadioGroup);
Vue.use(RadioButton);
Vue.use(Checkbox);
Vue.use(CheckboxButton);
Vue.use(CheckboxGroup);
Vue.use(Switch);
Vue.use(Select);
Vue.use(Option);
Vue.use(OptionGroup);
Vue.use(Button);
Vue.use(ButtonGroup);
Vue.use(Table);
Vue.use(TableColumn);
Vue.use(DatePicker);
Vue.use(TimeSelect);
Vue.use(TimePicker);
Vue.use(Popover);
Vue.use(Tooltip);
Vue.use(Breadcrumb);
Vue.use(BreadcrumbItem);
Vue.use(Form);
Vue.use(FormItem);
Vue.use(Tabs);
Vue.use(TabPane);
Vue.use(Tag);
Vue.use(Tree);
Vue.use(Alert);
Vue.use(Slider);
Vue.use(Icon);
Vue.use(Row);
Vue.use(Col);
Vue.use(Upload);
Vue.use(Progress);
Vue.use(Spinner);
Vue.use(Badge);
Vue.use(Card);
Vue.use(Rate);
Vue.use(Steps);
Vue.use(Step);
Vue.use(Carousel);
Vue.use(CarouselItem);
Vue.use(Collapse);
Vue.use(CollapseItem);
Vue.use(Cascader);
Vue.use(ColorPicker);
Vue.use(Transfer);
Vue.use(Container);
Vue.use(Header);
Vue.use(Aside);
Vue.use(Main);
Vue.use(Footer);
Vue.use(Timeline);
Vue.use(TimelineItem);
Vue.use(Link);
Vue.use(Divider);
Vue.use(Image);
Vue.use(Calendar);
Vue.use(Backtop);
Vue.use(PageHeader);
Vue.use(CascaderPanel);

Vue.use(Loading.directive);

Vue.prototype.$loading = Loading.service;
Vue.prototype.$msgbox = MessageBox;
Vue.prototype.$alert = MessageBox.alert;
Vue.prototype.$confirm = MessageBox.confirm;
Vue.prototype.$prompt = MessageBox.prompt;
Vue.prototype.$notify = Notification;
Vue.prototype.$message = Message;

5.重新對項目進行打包

 npm run build
按需加載后文件縮小了

全局配置

在引入 Element 時盲憎,可以傳入一個全局配置對象传透。該對象目前支持sizezIndex字段凄敢。size 用于改變組件的默認尺寸,zIndex設置彈框的初始z-index(默認值:2000)庸追。按照引入 Element 的方式霍骄,具體操作如下:

完整引入 Element:

import Vue from 'vue';
import App from './App.vue';
import Element from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.use(Element, { size: 'small', zIndex: 3000 });
Vue.config.productionTip = false;

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

按需引入 Element:

import Vue from 'vue';
import App from './App.vue';
import 'element-ui/lib/theme-chalk/index.css';
import { Button, Message } from 'element-ui';

Vue.prototype.$ELEMENT = { size: 'small', zIndex: 3000 };
Vue.use(Button);
Vue.prototype.$message = Message;
Vue.config.productionTip = false;

new Vue({
  render: h => h(App),
}).$mount('#app')
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市锚国,隨后出現(xiàn)的幾起案子腕巡,更是在濱河造成了極大的恐慌,老刑警劉巖血筑,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绘沉,死亡現(xiàn)場離奇詭異煎楣,居然都是意外死亡,警方通過查閱死者的電腦和手機车伞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門择懂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人另玖,你說我怎么就攤上這事困曙。” “怎么了谦去?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵慷丽,是天一觀的道長。 經(jīng)常有香客問我鳄哭,道長要糊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任妆丘,我火速辦了婚禮锄俄,結果婚禮上,老公的妹妹穿的比我還像新娘勺拣。我一直安慰自己奶赠,他們只是感情好,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布药有。 她就那樣靜靜地躺著毅戈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪愤惰。 梳的紋絲不亂的頭發(fā)上竹祷,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機與錄音羊苟,去河邊找鬼塑陵。 笑死,一個胖子當著我的面吹牛蜡励,可吹牛的內(nèi)容都是我干的令花。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼凉倚,長吁一口氣:“原來是場噩夢啊……” “哼兼都!你這毒婦竟也來了?” 一聲冷哼從身側響起稽寒,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤扮碧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體慎王,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡蚓土,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了赖淤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蜀漆。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖咱旱,靈堂內(nèi)的尸體忽然破棺而出确丢,到底是詐尸還是另有隱情,我是刑警寧澤吐限,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布鲜侥,位于F島的核電站,受9級特大地震影響诸典,放射性物質(zhì)發(fā)生泄漏剃毒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一搂赋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧益缠,春花似錦脑奠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至胰伍,卻和暖如春齿诞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背骂租。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工祷杈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人渗饮。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓按咒,卻偏偏與公主長得像诀拭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345