Element UI:测试开发最爱的前端组件库
程序员杨叔 2024-08-03 16:33:01 阅读 83
一、Element UI简介
在现代Web应用程序开发中,UI组件库是不可或缺的工具之一,它们提供了丰富多样的可重用组件,帮助开发者快速构建出美观、交互丰富的用户界面。
在众多的UI组件库中,Element UI因其简洁高效的设计风格、丰富多样的组件和良好的响应式设计,而备受广大测试开发的青睐,已逐渐成为各类测试平台首选的组件库。
Element UI基于Vue.js框架开发,它提供了诸如按钮、输入框、下拉菜单、表格、图表等常用的UI组件,涵盖了开发中常见的需求,同时还支持自定义主题,开发者可以根据项目需要轻松定制界面样式,使得应用与众不同。
二、安装Element UI
2.1 前置条件
在开始安装Element UI之前,确保已经安装并配置好Node.js和Vue.js环境。
2.2 安装步骤
打开终端,进入Vue项目的根目录,执行以下命令来安装Element UI:
<code>npm install element-ui -S
三、使用Element UI
3.1 引入Element UI
在项目的入口文件(例如main.js)中引入Element UI:
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)
});
3.2 基本使用
现在可以在Vue组件中使用Element UI的组件了。例如,下面实现了点击按钮,弹出一个询问对话框的简单示例:
<template>
<el-button type="text" @click="dialogVisible = true">点击打开 Dialog</el-button>code>
<el-dialog
title="提示"code>
:visible.sync="dialogVisible"code>
width="30%"code>
:before-close="handleClose">code>
<span>这是一段信息</span>
<span slot="footer" class="dialog-footer">code>
<el-button @click="dialogVisible = false">取 消</el-button>code>
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>code>
</span>
</el-dialog>
</template>
<script>
export default {
data() {
return {
dialogVisible: false
};
},
methods: {
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => { });
}
}
};
</script>
效果图如下:
四、Element UI常用组件介绍
4.1 表单组件
4.1.1 输入框(Input)
<code><el-input v-model="input" placeholder="请输入内容"></el-input>code>
4.1.2 下拉选择(Select)
<code><template>
<el-select v-model="value" placeholder="请选择">code>
<el-option
v-for="item in options"code>
:key="item.value"code>
:label="item.label"code>
:value="item.value">code>
</el-option>
</el-select>
</template>
<script>
export default {
data() {
return {
options: [{
value: '选项1',
label: '中餐'
}, {
value: '选项2',
label: '火锅'
}],
value: ''
}
}
}
</script>
4.1.3 多选框(Checkbox)
<code><template>
<el-checkbox v-model="checked1">选项1</el-checkbox>code>
<el-checkbox v-model="checked2">选项2</el-checkbox>code>
</template>
<script>
export default {
data() {
return {
checked1: false,
checked2: true
};
}
};
</script>
4.1.4 单选框(Radio)
<code><template>
<el-radio v-model="radio" label="1">备选项</el-radio>code>
<el-radio v-model="radio" label="2">备选项</el-radio>code>
</template>
<script>
export default {
data () {
return {
radio: '1'
};
}
}
</script>
4.2 数据展示组件
4.2.1 表格(Table)
<code><template>
<el-table
:data="tableData"code>
style="width: 100%">code>
<el-table-column
prop="date"code>
label="日期"code>
width="180">code>
</el-table-column>
<el-table-column
prop="name"code>
label="姓名"code>
width="180">code>
</el-table-column>
<el-table-column
prop="address"code>
label="地址">code>
</el-table-column>
</el-table>
</template>
<script>
export default {
data() {
return {
tableData: [{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '张小龙',
address: '上海市普陀区金沙江路 1517 弄'
}]
}
}
}
</script>
4.2.2 警告(Alert)
<code><template>
<el-alert
title="成功提示的文案"code>
type="success"code>
show-icon>
</el-alert>
<el-alert
title="消息提示的文案"code>
type="info"code>
show-icon>
</el-alert>
<el-alert
title="警告提示的文案"code>
type="warning"code>
show-icon>
</el-alert>
<el-alert
title="错误提示的文案"code>
type="error"code>
show-icon>
</el-alert>
</template>
4.2.3 进度条(Progress)
<code><el-progress :percentage="50"></el-progress>code>
<el-progress :percentage="100" :format="format"></el-progress>code>
<el-progress :percentage="100" status="success"></el-progress>code>
<el-progress :percentage="100" status="warning"></el-progress>code>
<el-progress :percentage="50" status="exception"></el-progress>code>
<script>
export default {
methods: {
format(percentage) {
return percentage === 100 ? '满' : `${ percentage}%`;
}
}
};
</script>
4.3 导航组件
4.3.1 导航菜单(Menu)
<code><el-menu
:default-active="activeIndex"code>
class="el-menu-demo"code>
mode="horizontal"code>
@select="handleSelect"code>
background-color="#545c64"code>
text-color="#fff"code>
active-text-color="#ffd04b">code>
<el-menu-item index="1">处理中心</el-menu-item>code>
<el-submenu index="2">code>
<template slot="title">我的工作台</template>code>
<el-menu-item index="2-1">选项1</el-menu-item>code>
<el-menu-item index="2-2">选项2</el-menu-item>code>
<el-menu-item index="2-3">选项3</el-menu-item>code>
<el-submenu index="2-4">code>
<template slot="title">选项4</template>code>
<el-menu-item index="2-4-1">选项1</el-menu-item>code>
<el-menu-item index="2-4-2">选项2</el-menu-item>code>
<el-menu-item index="2-4-3">选项3</el-menu-item>code>
</el-submenu>
</el-submenu>
<el-menu-item index="3" disabled>消息中心</el-menu-item>code>
<el-menu-item index="4"><a href="https://www.ele.me" target="_blank">订单管理</a></el-menu-item>code>
</el-menu>
<script>
export default {
data() {
return {
activeIndex: '1',
};
},
methods: {
handleSelect(key, keyPath) {
console.log(key, keyPath);
}
}
}
</script>
4.3.2 面包屑(Breadcrumb)
<code><el-breadcrumb separator="/">code>
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>code>
<el-breadcrumb-item><a href="/">活动管理</a></el-breadcrumb-item>code>
<el-breadcrumb-item>活动列表</el-breadcrumb-item>
<el-breadcrumb-item>活动详情</el-breadcrumb-item>
</el-breadcrumb>
4.4 反馈组件
4.4.1 对话框(Dialog)
<code><el-button type="text" @click="dialogTableVisible = true">打开嵌套表格的 Dialog</el-button>code>
<el-dialog title="收货地址" :visible.sync="dialogTableVisible">code>
<el-table :data="gridData">code>
<el-table-column property="date" label="日期" width="150"></el-table-column>code>
<el-table-column property="name" label="姓名" width="200"></el-table-column>code>
<el-table-column property="address" label="地址"></el-table-column>code>
</el-table>
</el-dialog>
<script>
export default {
data() {
return {
gridData: [{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '张小龙',
address: '上海市普陀区金沙江路 1517 弄'
}],
dialogTableVisible: false,
};
}
};
</script>
4.4.2 提示框(Notification)
<code><template>
<el-button
plain
@click="open1">code>
成功
</el-button>
</template>
<script>
export default {
methods: {
open1() {
this.$notify({
title: '成功',
message: '这是一条成功的提示消息',
type: 'success'
});
}
}
}
</script>
4.4.3 加载中(Loading)
<code><template>
<el-table
v-loading="loading"code>
element-loading-text="拼命加载中"code>
element-loading-spinner="el-icon-loading"code>
element-loading-background="rgba(0, 0, 0, 0.8)"code>
:data="tableData"code>
style="width: 100%">code>
<el-table-column
prop="date"code>
label="日期"code>
width="180">code>
</el-table-column>
<el-table-column
prop="name"code>
label="姓名"code>
width="180">code>
</el-table-column>
<el-table-column
prop="address"code>
label="地址">code>
</el-table-column>
</el-table>
</template>
<script>
export default {
data() {
return {
tableData: [{
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}],
loading: true
};
}
};
</script>
五、官网和Demo框架推荐
5.1 Element UI官网
本文只是列举了Element UI使用频率较高的一些组件的使用,更多的内容细节,可访问Element UI官网查看:https://element.eleme.cn/#/zh-CN
5.2 Demo框架推荐
为了更好地展示Element UI的强大功能和灵活性,推荐以下几个Demo框架:
5.2.1 vue2-element-touzi-admin
使用Vue.js 2.x和Element UI构建的投资管理后台系统框架地址:https://github.com/wdlhao/vue2-element-touzi-admin
5.2.2 go-admin
基于Gin + Vue + Element UI & Arco Design & Ant Design 的前后端分离权限管理系统脚手架框架地址:https://github.com/go-admin-team/go-admin
============================================================================
好啦,以上就是本次的全部内容,如果本文对你有帮助,麻烦点个赞+收藏+关注,一键三连啦!
欢迎扫描关注下方我的公众号:程序员杨叔,更多文章会第一时间在上面发布,持续分享各类测试开发知识干货,你的支持就是作者更新最大的动力。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。