elementui开发
ElementUI 开发指南
ElementUI 是一套基于 Vue.js 的桌面端组件库,提供丰富的 UI 组件和交互设计,适合快速开发企业级中后台产品。
安装与配置
使用 npm 或 yarn 安装 ElementUI:
npm install element-ui --save
# 或
yarn add element-ui
在 Vue 项目中全局引入:
import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
按需引入(推荐): 借助 babel-plugin-component 插件,仅引入需要的组件以减少体积:
npm install babel-plugin-component -D
修改 babel 配置(.babelrc 或 babel.config.js):
{
"plugins": [
[
"component",
{
"libraryName": "element-ui",
"styleLibraryName": "theme-chalk"
}
]
]
}
常用组件示例
表单组件:
<el-form :model="form" label-width="80px">
<el-form-item label="用户名">
<el-input v-model="form.username"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submit">提交</el-button>
</el-form-item>
</el-form>
表格组件:
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="date" label="日期"></el-table-column>
<el-table-column prop="name" label="姓名"></el-table-column>
</el-table>
主题定制
通过 SCSS 变量覆盖实现主题定制:
-
创建样式文件(如
element-variables.scss):
$--color-primary: #ff4500; @import "~element-ui/packages/theme-chalk/src/index"; -
在项目入口文件中引入该文件:
import './element-variables.scss'
国际化支持
ElementUI 提供多语言支持:
import Vue from 'vue';
import ElementUI from 'element-ui';
import locale from 'element-ui/lib/locale/lang/en';
Vue.use(ElementUI, { locale });
最佳实践
组件二次封装: 对常用组件进行封装,统一处理业务逻辑和样式:
// MyTable.vue
<template>
<el-table v-bind="$attrs" v-on="$listeners">
<slot></slot>
</el-table>
</template>
响应式设计: 结合 ElementUI 的 Layout 组件(Row/Col)实现响应式布局:
<el-row :gutter="20">
<el-col :xs="24" :sm="12" :md="8"></el-col>
</el-row>
常见问题解决
表单验证:

rules: {
username: [
{ required: true, message: '请输入用户名', trigger: 'blur' }
]
}
表格性能优化: 大数据量时启用虚拟滚动:
<el-table :data="bigData" height="500" :row-key="row => row.id"></el-table>
升级与迁移
从 ElementUI 迁移到 Element Plus(Vue 3 版本):
-
安装 Element Plus:
npm install element-plus -
修改引入方式:
import { createApp } from 'vue' import ElementPlus from 'element-plus' import 'element-plus/dist/index.css'
const app = createApp(App) app.use(ElementPlus)





