1、安装element-ui
代码语言:javascript复制npm i element-ui -S
2、完整引入 Element
在 main.js 中写入以下内容:
代码语言:javascript复制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 的引入。需要注意的是,样式文件需要单独引入。
3、按需引入
借助 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的。
首先,安装 babel-plugin-component:
代码语言:javascript复制npm install babel-plugin-component -D
然后,将 .babelrc 修改为:
代码语言:javascript复制{
"presets": [["es2015", { "modules": false }]],
"plugins": [
[
"component",
{
"libraryName": "element-ui",
"styleLibraryName": "theme-chalk"
}
]
]
}
截屏2022-03-01 上午10.43.07.png
4、管理按需引入
为了方便管理,建议在src文件夹下创建element-ui文件夹,并在里面创建index.js文件配置需要的组件。
截屏2022-03-01 上午10.46.13.png
代码语言:javascript复制import { Button, Option, Select, Switch, MessageBox, Message } from 'element-ui'
const element = {
install: function(Vue) {
Vue.use(Button)
Vue.use(Switch)
Vue.use(Select)
Vue.use(Option)
// 往vue实例原型里添加消息提示,方便全局调用
Vue.prototype.$msgbox = MessageBox
Vue.prototype.$alert = MessageBox.alert
Vue.prototype.$confirm = MessageBox.confirm
Vue.prototype.$message = Message
//使用:this.$message('这是一条消息提示');
}
}
export default element
5、在 main.js 中引入组件
代码语言:javascript复制//element-ui样式引入
import 'element-ui/lib/theme-chalk/index.css'
//element-ui文件夹下
import element from './element-ui/index'
Vue.use(element)
6、测试代码
代码语言:javascript复制<template>
<div class="hello">
<h1>{{ msg }}</h1>
<el-button round @click="showMsgAlert">Button</el-button>
<el-alert></el-alert>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
data () {
return {
msg: 'Welcome to Your Vue.js App'
}
},
methods: {
showMsgAlert() {
this.$alert('这是一段内容', 'element-ui Alert', {
confirmButtonText: '确定',
cancelButtonText:'取消',
showCancelButton: true,
callback: action => {
this.$message({
type: 'info',
message: `action: ${ action }`
});
}
});
}
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1 {
font-weight: normal;
}
</style>
截屏2022-03-01 上午10.48.41.png