element-ui 全部导入与按需导入
element
A Vue.js 2.0 UI Toolkit for Web
项目地址:https://gitcode.com/gh_mirrors/eleme/element
免费下载资源
·
element-ui 有两种使用方法:一种是(默认)全部导入,还有就是根据自己需要按需导入。
如何进行选择,这里提供一个简单方法:
主要就是一句话, 如果用到的组件少, 要按需引入, 如果用到的组件很多,就全部引入, 因为按需引入全部的, 和全部引入效果一样
一、全部导入
全局导入 在mian.js中导入(在vue项目中):
import Vue from 'vue';
import ElementUI from 'element-ui'; // 导入 elementUI
import 'element-ui/lib/theme-chalk/index.css'; // 导入 css
import App from './App.vue';
Vue.use(ElementUI);
以上代码便完成了 Element 的引入。需要注意的是,样式文件需要单独引入, 如果自定义主题, 则引入自定义主题.
特点:
使用组件 默认全部注册 无需导入 直接使用即可
全部导入整个UI框架,可能导致文件过大,会增加项目体积
二、按需导入
如果你只希望引入部分组件,比如 Button 和 Select,那么需要在 main.js 中写入以下内容(vue项目中):
import Vue from 'vue';
import { Button, Select } from 'element-ui';
import App from './App.vue';
Vue.use(Button)
Vue.use(Select)
/* 或写为
Vue.component(Button.name, Button);
Vue.component(Select.name, Select);
*/
特点:
没用用到的东西,不会被加入到项目中,减少了项目体积
每当使用到element-ui 具体组件时都需要手动去导入
按需导入时完整组件列表(相当于全部导入时的ElementUI
)和引入方式:
有了这个按需导入时就很方便了,需要调用哪个就解开注释(需要同时解开导入 和 调用)
import Vue from 'vue'
// 导入 组件
import {
// Pagination,
// Dialog,
// Autocomplete,
// Dropdown,
// DropdownMenu,
// DropdownItem,
// Menu,
// Submenu,
// MenuItem,
// MenuItemGroup,
// Input,
// InputNumber,
// Radio,
// RadioGroup,
// RadioButton,
Checkbox,
// 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,
// Scrollbar,
// CarouselItem,
// Collapse,
// CollapseItem,
// Cascader,
// ColorPicker,
// Loading,
// MessageBox,
// Message
} 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(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(Scrollbar)
// Vue.use(CarouselItem)
// Vue.use(Collapse)
// Vue.use(CollapseItem)
// Vue.use(Cascader)
// Vue.use(ColorPicker)
// 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-ui 遇到的一点问题
在Vue中使用element-ui的按需导入时,大部分组件都是以import { XXXX } from 'element-ui'
的方式引入,然后以Vue.component(XXX.name, XXX);
或者Vue.use(XXX)
的方式注册,当然也有例外,有些组件的使用需要挂载到原型对象上,这里需要注意
的是在全部导入的情况下,不需要再次进行手动挂载
。如果再次挂载就会报错。
例如:Message消息提示组件
在main.js引入
import { Message } from 'element-ui
在main.js注册,这里是挂在在Vue原型上的
Vue.prototype.$message = Message;
使用
<template>
<div id="app">
<el-button type="primary" @click='clickBtn'>主要按钮</el-button>
</div>
</template>
<script>
export default {
name: 'App',
components: {
},
methods:{
clickBtn:function(){
this.$message({
message:'这是一条提示信息'
});
}
}
}
</script>
GitHub 加速计划 / eleme / element
10
1
下载
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:5 个月前 )
c345bb45
9 个月前
a07f3a59
* Update transition.md
* Update table.md
* Update transition.md
* Update table.md
* Update transition.md
* Update table.md
* Update table.md
* Update transition.md
* Update popover.md 9 个月前
更多推荐
已为社区贡献9条内容
所有评论(0)