当前位置: 首页 > news >正文

JavaWeb前端06(ElementPlus快速构建网页)

前言

一直在学习B站黑马程序员苍穹外卖。现在已经学的差不多了,但是我学习一直是针对后端开发的,前端也没太注重去学(他大部分都给课程资料嘻嘻🤪),但我还是比较感兴趣,准备先把之前学JavaWeb(黑马程序员新推出的哦,视频讲的非常好😗可以去看看)时跳过的前端内容学一下,然后再用苍穹外卖前端内容补上。

学完Vue工程化,但我们制作的界面还不是很美观,下面来学习ElementPlus,其实学完之后感觉前面跟白雪一样😂

来看看什么是 ElementPlus

Element:是饿了么公司前端开发团队提供的一套基于 Vue3 的网站组件库,用于快速构建网页。

Element 提供了很多组件(组成网页的部件)供我们使用。例如 超链接、按钮、图片、表格等等。

官方网站: https://element-plus.org/zh-CN/#/zh-CN

你可能会有疑问,我们前面已经学过一些组件了,那为什么还要学ElementPlus呢?原因就是她更好看,有好多彩色按钮🥰,文本框也是圆圆的。

来看一个入门程序

package.json在终端打开

在这里插入图片描述

根据官方文档,安装ElementPlus组件库

npm install element-plus@2.4.4 --save

在main.js 中引入ElementPlus组件库 (参照官方文档),最终 main.js 中代码如下:

import { createApp } from 'vue'
import App from './App.vue'import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'const app = createApp(App)
app.use(ElementPlus)app.mount('#app')

来从一个案例来学习ElementPlus组件

还是先来看看前端实现:

在这里插入图片描述
来看看代码吧

<script setup>
import { ref, onMounted } from 'vue'
import axios from 'axios'//表单
const emp = ref({name: '',gender: '',job: '',
})//钩子函数
onMounted(() => {search();
})//查询
const search = async () => {const url = `https://web-server.itheima.net/emps/list?name=${emp.value.name}&gender=${emp.value.gender}&job=${emp.value.job}`const result = await axios.get(url)empList.value = result.data.data
}//清空
const clear = () => {emp.name = '';emp.gender = '';emp.job = '';search();
}const empList = ref([])
</script><template><!-- 搜索表单 --><div id="container"><el-form :inline="true" :model="emp" class="demo-form-inline"><el-form-item label="姓名"><el-input v-model="emp.name" placeholder="请输入姓名" clearable /></el-form-item><el-form-item label="性别"><el-select v-model="emp.gender" placeholder="请选择" clearable><el-option label="" value="1" /><el-option label="" value="2" /></el-select></el-form-item><el-form-item label="职位"><el-select v-model="emp.job" placeholder="请选择" clearable><el-option label="班主任" value="1" /><el-option label="讲师" value="2" /><el-option label="咨询师" value="3" /></el-select></el-form-item><el-form-item><el-button type="primary" @click="search">查询</el-button><el-button type="primary" @click="clear">清空</el-button></el-form-item></el-form><!-- 表格 --><el-table :data="empList" border style="width: 100%"><el-table-column prop="id" label="ID" width="80" align="center" /><el-table-column prop="name" label="姓名" width="100" align="center" /><el-table-column prop="image" label="头像" width="100" align="center" ><template #default="scope"><img :src="scope.row.image" width="50"></template></el-table-column><el-table-column prop="gender" label="性别" width="120" align="center" ><template #default="scope">{{ scope.row.gender == 1 ? '男' : '女' }}</template></el-table-column><el-table-column prop="job" label="职位" width="180" align="center" ><template #default="scope"><span v-if="scope.row.job == 1">班主任</span><span v-else-if="scope.row.job == 2">讲师</span><span v-else-if="scope.row.job == 3">咨询师</span><span v-else>其他</span></template></el-table-column><el-table-column prop="entryDate" label="入职日期" width="180" align="center" /><el-table-column prop="updatetime" label="更新时间" width="180" align="center" /></el-table></div></template><style scoped>
#container {width: 70%;margin: auto;margin-top: 100px;}</style>

里面有许多技术,axios,Css,这里只介绍ElementPlus常见组件:

<template><!-- 搜索表单 --><div id="container"><el-form :inline="true" :model="emp" class="demo-form-inline"><el-form-item label="姓名"><el-input v-model="emp.name" placeholder="请输入姓名" clearable /></el-form-item><el-form-item label="性别"><el-select v-model="emp.gender" placeholder="请选择" clearable><el-option label="" value="1" /><el-option label="" value="2" /></el-select></el-form-item><el-form-item label="职位"><el-select v-model="emp.job" placeholder="请选择" clearable><el-option label="班主任" value="1" /><el-option label="讲师" value="2" /><el-option label="咨询师" value="3" /></el-select></el-form-item><el-form-item><el-button type="primary" @click="search">查询</el-button><el-button type="primary" @click="clear">清空</el-button></el-form-item></el-form><!-- 表格 --><el-table :data="empList" border style="width: 100%"><el-table-column prop="id" label="ID" width="80" align="center" /><el-table-column prop="name" label="姓名" width="100" align="center" /><el-table-column prop="image" label="头像" width="100" align="center" ><template #default="scope"><img :src="scope.row.image" width="50"></template></el-table-column><el-table-column prop="gender" label="性别" width="120" align="center" ><template #default="scope">{{ scope.row.gender == 1 ? '男' : '女' }}</template></el-table-column><el-table-column prop="job" label="职位" width="180" align="center" ><template #default="scope"><span v-if="scope.row.job == 1">班主任</span><span v-else-if="scope.row.job == 2">讲师</span><span v-else-if="scope.row.job == 3">咨询师</span><span v-else>其他</span></template></el-table-column><el-table-column prop="entryDate" label="入职日期" width="180" align="center" /><el-table-column prop="updatetime" label="更新时间" width="180" align="center" /></el-table></div></template>

1.用于构建表单结构。

<el-form :inline="true" :model="emp" class="demo-form-inline"><el-form-item label="姓名"><!-- 输入框 --></el-form-item>
</el-form>

:inline=“true”:让表单项水平排列(行内布局)。
:model=“emp”:绑定表单数据模型,即 emp 对象。
el-form-item:每一个表单项的容器,label 属性设置标签名。

2.输入框组件,用于输入文本。

<el-input v-model="emp.name" placeholder="请输入姓名" clearable />

v-model=“emp.name”:双向绑定输入值。
placeholder:提示文字。
clearable:允许清空选择。

3.下拉选择器,用于性别和职位的选择。

<el-select v-model="emp.gender" placeholder="请选择" clearable><el-option label="" value="1" /><el-option label="" value="2" />
</el-select>

v-model:绑定选中的值(如 emp.gender)。
clearable:允许清空选择。
el-option:定义每一个选项。

  • label:显示的文字。
  • value:实际绑定的值(字符串类型)。

4.按钮组件,用于触发操作。

<el-button type="primary" @click="search">查询</el-button>
<el-button type="primary" @click="clear">清空</el-button>

type=“primary”:主按钮样式(蓝色)。
@click:绑定点击事件,如 search() 和 clear() 方法。

5.表格组件,用于展示数据列表。

<el-table :data="empList" border style="width: 100%"><!-- 列定义 -->
</el-table>

:data=“empList”:绑定表格数据源(数组)。
border:显示边框。
style=“width: 100%”:宽度占满父容器。

6.定义表格的一列。

<el-table-column prop="name" label="姓名" width="100" align="center" />

prop:对应数据对象中的字段名(如 name, gender)。
label:列标题。
width:列宽。
align=“center”:内容居中对齐。

特殊列:使用 <template #default=“scope”>
对于需要 自定义渲染内容 的列(如图片、条件显示),使用 #default 插槽:

  1. 头像列(图片显示)
<el-table-column prop="image" label="头像" width="100" align="center"><template #default="scope"><img :src="scope.row.image" width="50"></template>
</el-table-column>

scope.row:当前行的数据对象。
渲染一个 标签,显示员工头像。

  1. 性别列(条件显示)
<template #default="scope">{{ scope.row.gender == 1 ? '男' : '女' }}
</template>
  1. 职位列(多条件判断)
<template #default="scope"><span v-if="scope.row.job == 1">班主任</span><span v-else-if="scope.row.job == 2">讲师</span><span v-else-if="scope.row.job == 3">咨询师</span><span v-else>其他</span>
</template>

使用 v-if / v-else-if 根据 job 值显示对应职位名称。

小白啊!!!写的不好轻喷啊🤯如果觉得写的不好,点个赞吧🤪(批评是我写作的动力)

…。。。。。。。。。。。…

…。。。。。。。。。。。…请添加图片描述

http://www.dtcms.com/a/358475.html

相关文章:

  • IDM手机端,速度能提高6倍!
  • 消息队列核心技术解析与应用场景
  • JAVA EE初阶 4:文件操作和IO
  • 使用 SVM(支持向量机)进行图像分类:从读取图像到训练与分类的完整流程
  • Python API接口实战指南:从入门到精通
  • HarmonyOS三方库的使用
  • Java SpringAI应用开发面试全流程解析:RAG、流式推理与企业落地
  • 【Java工程师面试全攻略】Day13:云原生架构与Service Mesh深度解析
  • 防火墙技术(二):安全区域
  • 【Linux】系统部分——软硬链接动静态库的使用
  • Tomcat 企业级运维实战系列(四):Tomcat 企业级监控
  • 每日Java并发面试系列(5):基础篇(线程池的核心原理是什么、线程池大小设置为多少更合适、线程池哪几种类型?ThreadLocal为什么会导致内存泄漏?)
  • Tomcat 企业级运维实战系列(三):Tomcat 配置解析与集群化部署
  • Qt实战:如何打开摄像头并实现视频的实时预览
  • 生成式 AI 重构内容生产:效率提升背后的创作版权边界争议
  • react虚拟列表实现及原理
  • leetcode2(移除元素)
  • 本地部署音效生成器 Moodist 并实现外部访问
  • Spring Cloud 和 Dubbo 是目前主流的两大微服务框架,分别代表了两种不同的技术路线
  • HarmonyOS 应用开发:基于API 12及以上的现代化实践
  • I2C多点触控驱动开发详解
  • Elasticsearch logsdb 索引模式和 TSDS 的业务影响
  • 【小白笔记】基本的Linux命令来查看服务器的CPU、内存、磁盘和系统信息
  • 网络编程4-并发服务器、阻塞与非阻塞IO、信号驱动模型、IO多路复用..
  • MQTT 连接建立与断开流程详解(二)
  • 项目管理在企业中的作用
  • 小迪Web自用笔记7
  • Redission 实现延迟队列
  • 鸿蒙NEXT布局全解析:从线性到瀑布流,构建自适应UI界面
  • Notepad++常用设置