什么是Element Plus?
Element Plus是基于Vue 3开发的优秀的PC端开源UI组件库,它是Element的升级版,对于习惯使用Element的人员来说,在学习Element Plus时,不用花费太多的时间。因为Vue 3不再支持IE 11,所以Element Plus也不再支持IE 11及更低的IE版本。
使用npm或yarn包管理工具安装Element Plus。
# 使用npm包管理工具安装
npm install element-plus --save
# 使用yarn包管理工具安装
yarn add element-plus --save
在src\main.js文件中,导入并挂载Element Plus模块。
import { createApp } from 'vue'
import './style.css'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'
const app = createApp(App)
app.use(ElementPlus)
app.mount('#app')
Element Plus常用组件库
Element Plus组件库中的组件主要包括基础组件、配置组件、表单组件、数据展示组件、导航和反馈组件以及其他组件。每个组件类别又进行了细分,例如,基础组件包含Button组件、Border组件、Container组件等;表单组件包含Form组件、Input组件等。下面对Element Plus中常用的Button组件、Table组件、Form组件和Menu组件进行讲解。
1. Button组件
Button组件使用<el-button>标签定义,<el-button>标签的常用属性如下表所示。
属性名 | 属性值 | 描述 |
type | primary | 主要按钮 |
success | 成功按钮 |
info | 一般提示信息按钮 |
warning | 警告按钮 |
danger | 危险按钮 |
plain | true或false | 是否为朴素按钮,默认值为false |
round | true或false | 是否为圆角按钮,默认值为false |
disabled | true或false | 是否为禁用按钮,默认值为false |
link | true或false | 是否为链接按钮,默认值为false |
circle | true或false | 是否为圆形按钮,默认值为false |
如果需要设置plain、round或circle的属性值为true,可以写成“:属性名="true"”或“属性名”的形式。以round为例,示例代码如下。
<!-- 方式1 -->
<el-button type="primary" :round="true">Primary</el-button>
<!-- 方式2 -->
<el-button type="primary" round>Primary</el-button>
注意:
如果需要设置plain、round或circle的属性值为false,可以写成“:属性名="false"”的形式,或直接省略这些属性。
演示基础的按钮效果
<template>
<el-row class="mb-4">
<el-button>Default</el-button>
<el-button type="primary">Primary</el-button>
<el-button type="success">Success</el-button>
<el-button type="info">Info</el-button>
<el-button type="warning">Warning</el-button>
<el-button type="danger">Danger</el-button>
</el-row>
<!-- 此处省略了两个<el-row></el-row> -->
</template>

演示链接按钮和禁用按钮的使用
<template>
<el-row class="mb-4">
<el-button link>Round</el-button>
<el-button type="primary" link :disabled="false">Primary</el-button>
<el-button type="success" link :disabled="true">Success</el-button>
<el-button type="info" link>Info</el-button>
<el-button type="warning" link>Warning</el-button>
<el-button type="danger" link>Danger</el-button>
</el-row>
</template>

2. Table组件
Element Plus组件库提供了Table组件,用于展示多条结构类似的数据,例如工资表、课程表和计划表等,可以对数据进行排序、筛选、对比或其他自定义操作。
Table组件使用<el-table>标签定义,在该标签中绑定data对象数组后,在<el-table-column>中使用prop属性对应对象中的键名,即可将数据添加到表格中;使用label属性可以定义表格的列名,使用width属性可以定义表格的宽高。
<el-table>标签的常用属性如下表所示。
属性名 | 描述 |
data | 显示的数据 |
stripe | 是否加斑马线,默认值为false |
border | 是否带有纵向边框,默认值为false |
演示基础的表格效果
<template>
<el-table :data="tableData" stripe border style="width: 100%">
<el-table-column prop="date" label="日期" width="180" />
<el-table-column prop="name" label="姓名" width="180" />
<el-table-column prop="address" label="住址" width="300" />
</el-table>
</template>
<script setup>
const tableData = [
{ date: '2023-02-03', name: '王五', address: '北京市海淀区' },
// 此处省略了3行数据]
</script>

3. Form组件
大多数的网站中都涉及表单的应用,例如登录和注册页面。Element Plus组件库提供了Form组件,该组件采用Flex布局,用于收集、验证和提交数据。基础的表单包含输入框、单选框、下拉选择、多选框等组件。

Form组件使用<el-form>标签定义,在该标签中使用<el-form-item>作为输入项的容器,用于获取值和验证值。
<el-form>标签的常用属性如下表所示。
属性名 | 描述 |
inline | 行内表单模式,默认值为false,表示垂直表单 |
label-position | 表单域标签的位置,默认值为right(标签右对齐),left表示标签左对齐,top表示标签位于表单域的顶部 |
model | 表单数据对象 |
注意:
当label-position属性设置为left或right时,需要设置label-width属性,否则label-position属性不生效。
演示基础的表单效果
<template>
<el-form :model="form" label-width="80px" label-position="left">
<el-form-item label="用户名:">
<el-input v-model="form.name" />
</el-form-item>
<!-- 此处省略了两个<el-form-item></el-form-item> -->
</template>
<script setup>
import { reactive } from 'vue'
const form = reactive({ pass:'', name: '' })
</script>

表单默认为垂直表单,若想实现行内表单,可以修改步骤①的代码,为<el-from>标签添加inline属性,使表单元素并列显示。
<el-form inline :model="form" label-width="80px" label-position="left">// 属性

4. Menu组件
导航栏是网页设计中不可或缺的一部分,通常应用于页面的顶部,可以帮助用户快速找到他们想要访问的内容。例如,导航栏可以实现页面之间的跳转。Element Plus组件库提供了Menu组件,用于为网站提供导航功能。

Menu组件使用<el-menu>标签定义,在该标签中包含<el-menu-item>和<sub-menu>标签。菜单默认为垂直模式,通过将mode属性值设为horizontal,可以将导航菜单变更为水平模式。
<el-menu>标签的常用属性如下表所示。
属性名 | 描述 |
mode | 菜单展示模式,默认值为vertical(垂直模式),horizontal表示菜单为水平模式 |
collapse | 是否水平折叠并收起菜单,默认值为false |
background-color | 菜单的背景色 |
text-color | 菜单的文字颜色,默认值为#303133 |
active-text-color | 当前激活菜单的文字颜色,默认值为#409EFF |
default-active | 页面加载时默认激活菜单的index属性 |
演示顶部菜单栏效果
<template>
<el-menu class="el-menu-demo" mode="horizontal">
<el-menu-item index="1">首页</el-menu-item>
<el-sub-menu index="2"><!-- 此处省略了部分代码 --> </el-sub-menu>
<el-menu-item index="3" disabled>信息</el-menu-item>
<el-menu-item index="4">联系</el-menu-item>
</el-menu>
</template>
<script setup>
import { ref } from 'vue'
const activeIndex = ref('1')
</script>
导入style.css的代码进行注释,以免其影响Menu组件的样式效果。
// import './style.css'

若想实现垂直菜单栏效果,可以修改上述代码,将<el-menu>标签中class的值改为el-menu-vertical-demo,将mode的值改为vertical。单击“我的”菜单项,会显示折叠的子菜单信息,如下图所示。
