快速上手

快速上手

本节将介绍如何在项目中使用 Element。

¶使用 vue-cli@3

我们为新版的 vue-cli 准备了相应的 Element 插件,你可以用它们快速地搭建一个基于 Element 的项目。

¶使用 Starter Kit

我们提供了通用的项目模板,你可以直接使用。对于 Laravel 用户,我们也准备了相应的模板,同样可以直接下载使用。

如果不希望使用我们提供的模板,请继续阅读。

¶引入 Element

你可以引入整个 Element,或是根据需要仅引入部分组件。我们先介绍如何引入完整的 Element。

¶完整引入

在 main.js 中写入以下内容:

import Vue from 'vue'; import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; import App from './App.vue'; Vue.use(ElementUI new Vue{ el: '#app', render: h => h(App) }

以上代码便完成了 Element 的引入。需要注意的是,样式文件需要单独引入。

¶按需引入

借助 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的。

首先,安装 babel-plugin-component:

npm install babel-plugin-component -D

然后,将 .babelrc 修改为:

{ "presets": [["es2015", { "modules": false }]], "plugins": [ [ "component", { "libraryName": "element-ui", "styleLibraryName": "theme-chalk" } ] ] }

接下来,如果你只希望引入部分组件,比如 Button 和 Select,那么需要在 main.js 中写入以下内容:

import Vue from 'vue'; import { Button, Select } from 'element-ui'; import App from './App.vue'; Vue.component(Button.name, Button Vue.component(Select.name, Select /* 或写为 * Vue.use(Button) * Vue.use(Select) */ new Vue{ el: '#app', render: h => h(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, Badge, Card, Rate, Steps, Step, Carousel, CarouselItem, Collapse, CollapseItem, Cascader, ColorPicker, Transfer, Container, Header, Aside, Main, Footer, 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(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(Container Vue.use(Header Vue.use(Aside Vue.use(Main Vue.use(Footer 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;

¶全局配置

在引入 Element 时,可以传入一个全局配置对象。该对象目前支持 sizezIndex 字段。size 用于改变组件的默认尺寸,zIndex 设置弹框的初始 z-index(默认值:2000)。按照引入 Element 的方式,具体操作如下:

完整引入 Element:

import Vue from 'vue'; import Element from 'element-ui'; Vue.use(Element, { size: 'small', zIndex: 3000 }

按需引入 Element:

import Vue from 'vue'; import { Button } from 'element-ui'; Vue.prototype.$ELEMENT = { size: 'small', zIndex: 3000 }; Vue.use(Button

按照以上设置,项目中所有拥有 size 属性的组件的默认尺寸均为 'small',弹框的初始 z-index 为 3000。

¶开始使用

至此,一个基于 Vue 和 Element 的开发环境已经搭建完毕,现在就可以编写代码了。各个组件的使用方法请参阅它们各自的文档。

¶使用 Nuxt.js

我们还可以使用 Nuxt.js