前言
- 之前使用 ElementPlus 做项目的时候,由于不会使用按需引入,一个仅需要几个 ElementPlus 组件的 Vue 项目,全局引入 ElementPlus 组件库,导致项目体积非常大
- 接下来将介绍在 Vue 中如何引入 ElementPlus
一、完整引入
1、安装组件库
npm install element-plus --save
2、在项目中引入
- 在 mian.js 文件中配置如下:
- 如果使用到 icon 图标,需要安装之后再引入
npm install @element-plus/icons-vue --save
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import 'element-plus/theme-chalk/index.css'
import ElementPlus from 'element-plus';
import { Edit } from '@element-plus/icons-vue'
const app = createApp(App)
app.component('Edit', Edit)
app.use(ElementPlus)
app.use(router).mount('#app')
<template>
<div class="home">
<el-button type="primary">按钮</el-button>
<!-- icon 图标 -->
<edit style="width: 36px; height: 36px" />
</div>
</template>
<script>
export default {
name: "Home"
};
</script>
<style lang="less" scoped>
.home {
width: 100%;
height: 100%;
text-align: center;
background-color: #eee;
}
</style>

3、设置组件语言
- ElementPlus 组件默认使用英文,如果希望使用其他语言,例如中文,你可以参考下面的方案
- 首先,引入组件要使用的语言
- 然后,在全局挂载 ElementPlus 的位置配置 locale 属性
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import 'element-plus/theme-chalk/index.css'
import ElementPlus from 'element-plus';
import { Edit } from '@element-plus/icons-vue'
import zhCn from 'element-plus/es/locale/lang/zh-cn'
const app = createApp(App)
app.component('Edit', Edit)
app.use(ElementPlus, { locale: zhCn })
app.use(router).mount('#app')
二、按需引入
1、安装组件库
npm install element-plus --save
npm install -D unplugin-vue-components unplugin-auto-import
2、Webpack 配置
- 在 webpack.config.js 文件中添加如下代码
- 一般新创建的项目没有自动生成 webpack.config.js 文件,需要在项目根目录下手动创建(和 src 目录平级)
const AutoImport = require('unplugin-auto-import/webpack')
const Components = require('unplugin-vue-components/webpack')
const { ElementPlusResolver } = require('unplugin-vue-components/resolvers')
module.exports = {
plugins: [
AutoImport({
resolvers: [ElementPlusResolver()],
}),
Components({
resolvers: [ElementPlusResolver()],
}),
],
}
3、在项目中引入
(1)全局引入
- 在 mian.js 文件中配置如下:
- 如果使用到 icon 图标,需要安装之后再引入
npm install @element-plus/icons-vue --save
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import 'element-plus/theme-chalk/index.css'
import { ElButton } from 'element-plus';
import { Edit } from '@element-plus/icons-vue'
const app = createApp(App)
app.component('ElButton', ElButton)
app.component('Edit', Edit)
app.use(router).mount('#app')
<template>
<div class="home">
<el-button type="primary">按钮</el-button>
<div>
<edit style="width: 26px; height: 26px" />
</div>
</div>
</template>
<script>
export default {
name: "Home"
};
</script>
<style lang="less" scoped>
.home {
width: 500px;
height: 200px;
line-height: 100px;
text-align: center;
background-color: #ddd;
}
</style>

(2)局部引入
- 在 mian.js 文件中配置如下:
- 如果使用到 icon 图标,需要安装之后再引入
npm install @element-plus/icons-vue --save
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
const app = createApp(App)
app.use(router).mount('#app')
<template>
<div class="home">
<el-button type="primary">按钮</el-button>
<div>
<edit style="width: 26px; height: 26px" />
</div>
</div>
</template>
<script>
import "element-plus/theme-chalk/index.css";
import { ElButton } from "element-plus";
import { Edit } from "@element-plus/icons-vue";
export default {
name: "Home",
components: {
ElButton,
Edit,
},
};
</script>
<style lang="less" scoped>
.home {
width: 500px;
height: 200px;
line-height: 100px;
text-align: center;
background-color: #ddd;
}
</style>

4、按需引入时设置组件语言
- ElementPlus 组件默认使用英文,如果希望使用其他语言,例如中文,你可以参考下面的方案
- 首先,在 main.js 文件中按需引入 ElConfigProvider 组件,并注册
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import 'element-plus/theme-chalk/index.css'
import { ElConfigProvider, ElButton } from 'element-plus';
import { Edit } from '@element-plus/icons-vue'
const app = createApp(App)
app.component('ElConfigProvider', ElConfigProvider)
app.component('ElButton', ElButton)
app.component('Edit', Edit)
app.use(router).mount('#app')
- 然后,在 App.vue 文件中引入需要的语言,并配置到 ElConfigProvider 组件的 locale 属性上
<template>
<div class="app">
<el-config-provider :locale="locale">
<router-view />
</el-config-provider>
</div>
</template>
<script>
import zhCn from "element-plus/es/locale/lang/zh-cn";
export default {
data() {
return {
locale: zhCn,
};
},
};
</script>
<style lang="less">
html,
body,
.app {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
</style>
- 使用前

- 使用后

总结