Element Ui

Element UI 初体验:从安装到使用全攻略

详细讲解为什么需要 Element UI,Element UI 介绍,以及如何在 Vue2 项目中安装和使用 Element UI(完整引入和按需引入)。

🎯 引言

学会这篇文章后,你将了解为什么前端开发中需要 UI 框架,Element UI 是什么,如何在 Vue2 项目中快速安装并使用它。这样你就能大幅提升开发效率,避免重复造轮子,轻松搭建美观且高效的界面。


⚙️ 为什么需要 Element UI?

🤔 原生组件开发有多痛苦?

在前端开发中,我们经常需要按钮、表单、弹窗、导航等各种 UI 组件。用原生 HTML 和 CSS 来做这些组件,虽然灵活,但痛点非常明显:

  • 样式写起来很繁琐,兼容性问题多
  • 交互效果(比如弹窗动画、表单校验)需要用大量 JavaScript 来实现
  • 组件复用难度大,其他项目想用得重新写
  • UI 设计不统一,维护成本高

举个例子,你要写一个带有验证功能的表单,光验证逻辑就要写好几百行代码,还要保证错误提示样式美观,用户体验才不会差。

🚀 使用 UI 框架带来哪些效率提升?

正因为原生组件开发的痛苦,很多团队选择使用 UI 框架。UI 框架帮你封装好了各种常见组件,优势很明显:

  • 只需简单配置,快速搭建界面
  • 样式统一,保持整体风格一致
  • 内置丰富交互效果,减少重复造轮子
  • 社区活跃,有大量示例和文档支持
  • 按需引入减少打包体积,性能友好

使用 UI 框架能让你用更少的代码实现更复杂的功能,开发速度大幅提升,项目维护也更加轻松。


🎨 什么是 Element UI?

Element UI 是一套为基于 Vue2,面向设计师和开发者的组件库。它由饿了么前端团队开发,开源且文档完善,设计语言简洁优雅,组件丰富,满足绝大多数后台管理系统的需求。

它的特点:

  • 基于 Vue2,使用起来顺畅,符合 Vue 的设计理念
  • 组件丰富,包括按钮、表单、弹窗、菜单、表格等应有尽有
  • 支持主题定制,能根据品牌风格修改样式
  • 文档详细,示例丰富,上手快
  • 社区活跃,问题和需求响应快

简而言之,Element UI 是 Vue2 生态中最受欢迎的 UI 组件库之一,特别适合后台管理界面。


🛠️ 如何在 Vue2 项目安装 Element UI

安装 Element UI 有两种常见方式:完整引入和按需引入。下面先聊聊安装的准备工作。

1. 安装依赖

确保你的项目是基于 Vue2 的,npm 或 yarn 可用,然后在项目根目录执行:

npm install element-ui --save
# 或者使用 yarn
yarn add element-ui

这样 Element UI 的代码和样式会被下载到你的项目 node_moduels 里面。

2. 在项目中导入并使用

Element UI 提供了完整引入和按需引入两种方式。


✨ 完整引入 Element UI

完整引入指的是把所有的 Element UI 组件和样式一次性导入,优点是配置简单,适合小项目或开发初期快速试用。

main.js 里写:

import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.use(ElementUI);

new Vue({
    el: '#app',
    render: h => h(App),
});

这样,Element UI 的所有组件都可在项目中使用,无需单独导入。

🎉 使用示例:

<template>
    <el-button type="primary">这是一个按钮</el-button>
</template>
完整引入虽然方便,但会增加打包体积,包含了所有组件,即使你不使用它们。

🔍 按需引入 Element UI

按需引入可以只引入你用到的组件,减少打包体积,让项目更轻量。

1. 安装 babel-plugin-component 插件

npm install babel-plugin-component -D
# 或者
yarn add babel-plugin-component -D

2. 修改 babel.config.js.babelrc 配置:

module.exports = {
    plugins: [
        [
            'component',
            {
                libraryName: 'element-ui',
                styleLibraryName: 'theme-chalk',
            },
        ],
    ],
};

3. 在代码中按需导入组件:

import Vue from 'vue';
import { Button, Select } from 'element-ui';

Vue.component(Button.name, Button);
Vue.component(Select.name, Select);

new Vue({
    el: '#app',
    render: h => h(App),
});

这样,你只引入了按钮和选择器组件,其它组件不会被打包进来。

🎉 使用示例:

<template>
    <div>
        <el-button type="success">成功按钮</el-button>
        <el-select v-model="value" placeholder="请选择">
            <el-option label="选项1" value="1" />
            <el-option label="选项2" value="2" />
        </el-select>
    </div>
</template>

<script>
export default {
    data() {
        return {
            value: '',
        };
    },
};
</script>
按需引入需要配置好 babel 插件,否则可能会出现样式不生效或组件找不到的问题。

🧾 小节总结

  • 使用 Element UI 能极大提升前端开发效率,避免重复造轮子,尤其适合后台管理界面
  • 完整引入简单上手,但会增加打包体积,适合快速开发或小项目
  • 按需引入能减小体积,适合正式项目,需配置 babel 插件实现组件和样式按需加载

❓ 知识问答(Q&A)

Q:Element UI 支持 Vue3 吗?

A:Element UI 目前主要支持 Vue2,Vue3 需要使用 Element Plus。

Q:按需引入时为什么样式不生效?

A:很可能是没有配置 babel-plugin-component 插件,或者样式库路径写错。


🧪 小练习

练习 1

尝试完整引入后,渲染第一个按钮组件

<template>
    <el-button type="primary">按钮组件</el-button>
</template>

练习 2

尝试按需引入下,渲染一个下拉框组件

<template>
    <el-select v-model="gender" placeholder="请选择性别">
        <el-option label="" value="male" />
        <el-option label="" value="female" />
    </el-select>
</template>

<script>
export default {
    data() {
        return {
            gender: '',
        };
    },
};
</script>

🎉 恭喜你已经掌握 Element UI 的核心技能:理解为什么需要它,认识它是什么,以及如何在 Vue2 项目中安装并使用 Element UI(完整引入和按需引入)!