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

舟山网站开发松江新城建设投资有限公司网站

舟山网站开发,松江新城建设投资有限公司网站,中国平安人寿保险公司官网,不准别人网站做反链Web前端实战 ElementPlus 什么是ElementPlus ElementPlus:是饿了么团队研发的,基于Vue3,面向设计师和开发者的组件库。 组件:组成网页的部件,例如超链接、按钮、图片、表格、表单、分页条等等。 官网:…

Web前端实战

ElementPlus

什么是ElementPlus

ElementPlus:是饿了么团队研发的,基于Vue3,面向设计师和开发者的组件库。

组件:组成网页的部件,例如超链接、按钮、图片、表格、表单、分页条等等。

官网:一个 Vue 3 UI 框架 | Element Plus

快速入门

准备工作:

1.创建vue项目

2.参照官方文档,安装Element Plus组件库(在当前工程的目录下):npm install element-plus@2.2.4 --save

3.main.js中引入Element Plus组件库(参照官方文档)

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

制作组件:访问Element官方文档,复制组件代码,调整。

常见组件

表格组件:

用于展示多条结构类似的数据,可对数据进行排序、筛选、对比或其他自定义操作。

<script setup>
const tableData = [{date: '2016-05-03',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-02',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-04',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-01',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},
]
</script>
​
<template>  
<div class="mb-4"><el-table :data="tableData" border style="width: 100%"><el-table-column prop="date" label="Date" width="180" /><el-table-column prop="name" label="Name" width="180" /><el-table-column prop="address" label="Address" /></el-table></div>
</template>

表格组件使用的关键点在于清楚表格中绑定的数据data,以及每一列要展示的属性信息。项目开发中的数据应该是Ajax异步请求服务端,服务端返回。

分页条组件:

当数据量过多时,使用分页操作分解数据。

默认Element Plus的组件是英文的,如果希望使用中文语言,可以做如下配置:

import zhCn from 'element-plus/es/locale/lang/zh-cn'
createApp(App).use(ElementPlus,{locale:zhCn}).mount('#app')
<script setup>
import { ref } from 'vue';// 导入 ref 函数
const currentPage4 = ref(1);// 定义当前页码
const size = ref('default');// 定义分页大小
const background = ref(true);// 定义是否显示背景  
</script>
<template>  
<div><el-paginationv-model:current-page="currentPage4"v-model:page-size="pageSize4":page-sizes="[100, 200, 300, 400]":disabled="disabled":background="background"layout="total, sizes, prev, pager, next, jumper":total="400"@size-change="handleSizeChange"@current-change="handleCurrentChange"/></div>
</template>
对话框组件:

在保留当前页面状态的情况下,告知用户并承载相关操作。

通过model-value/v-model给定的boolean值,来控制Dialog的显示和隐藏。

<script setup>
const dialogTableVisible = ref(false);// 定义对话框是否可见
</script>
<template>  <div class="mb-4"><el-button plain @click="dialogTableVisible = true">Open a Table nested Dialog</el-button><el-dialog v-model="dialogTableVisible" title="Shipping address" width="800"><el-table :data="tableData"><el-table-column property="date" label="Date" width="150" /><el-table-column property="name" label="Name" width="200" /><el-table-column property="address" label="Address" /></el-table></el-dialog></div>
</template>
表单组件:

Form 表单:由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据。

表单在我们前端的开发中使用的还是比较多的,接下来我们学习这个组件,与之前的流程一样,我们首先需要在ElementPlus的官方找到对应的组件示例

表单项数据采集:v-model数据绑定

表单数据提交:事件绑定

<!-- Form 表单 --><el-form :inline="true" :model="formInline" class="demo-form-inline"><el-form-item label="Approved by"><el-input v-model="formInline.user" placeholder="Approved by" clearable /></el-form-item>
​<el-form-item label="Activity zone"><el-select v-model="formInline.region" placeholder="Activity zone" clearable><el-option label="Zone one" value="shanghai" /><el-option label="Zone two" value="beijing" /></el-select></el-form-item>
​<el-form-item label="Activity time"><el-date-picker v-model="formInline.date" type="date" placeholder="Pick a date" clearable/></el-form-item><el-form-item><el-button type="primary" @click="onSubmit">Query</el-button></el-form-item></el-form>

案例

需求:基于ElementPlus组件库制作如下页面,并异步获取数据,完成页面展示。

1). 准备工作

由于在案例中,我们需要在vue项目中使用Axios,需要安装axios,需要在当前项目的目录下执行如下命令:

npm install axios

2). 编码实现

views目录下,再定义一个文件 EmpList.vue,具体代码实现如下:

<script setup>
import { ref, onMounted } from 'vue'
import axios from 'axios'
​
const searchEmp = ref({name: '',gender: '',job: '',
})
​
onMounted(() => {search();
})
​
const search = async () => {const url = `https://web-server.itheima.net/emps/list?name=${searchEmp.value.name}&gender=${searchEmp.value.gender}&job=${searchEmp.value.job}`const result = await axios.get(url)tableData.value = result.data.data
}
​
const clear = () => {searchEmp.value = { name: '', gender: '', job: '' }search();
}
​
let tableData = ref([])
</script>
​
<template><div id="center"><el-form :inline="true" :model="searchEmp" class="demo-form-inline"><el-form-item label="姓名"><el-input v-model="searchEmp.name" placeholder="请输入姓名" clearable /></el-form-item><el-form-item label="性别"><el-select v-model="searchEmp.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="searchEmp.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><br>
​<!-- 表格 --><el-table :data="tableData" 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 label="头像" width="120" 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 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="更新时间" align="center" /></el-table></div>
</template>
​
<style scoped>
#center {width: 70%;margin: auto;margin-top: 100px;
}
</style>
在 App.vue 中引入 EmpList.vue 文件<script setup>import EmpList from './views/EmpList.vue'
</script>
​
<template><EmpList></EmpList>
</template>
​
<style scoped>
​
</style>

3). 打开浏览器,查看页面效果


文章转载自:

http://d8rAxn0g.hyfrd.cn
http://SuhWDhkh.hyfrd.cn
http://KyQ4J4Dk.hyfrd.cn
http://TDPQfzep.hyfrd.cn
http://3eLR5YWz.hyfrd.cn
http://JcavWLXx.hyfrd.cn
http://anNBJKhN.hyfrd.cn
http://a9pzZYOs.hyfrd.cn
http://N2e9II58.hyfrd.cn
http://8CaYvBXC.hyfrd.cn
http://Ibfzc4iR.hyfrd.cn
http://Jab3Z74F.hyfrd.cn
http://Ectpm8Kr.hyfrd.cn
http://M0k23DGz.hyfrd.cn
http://ZGHefkTE.hyfrd.cn
http://wZHlT9ih.hyfrd.cn
http://GG9FYE8s.hyfrd.cn
http://KIZFxjTx.hyfrd.cn
http://9krw69zk.hyfrd.cn
http://8M9N3uvg.hyfrd.cn
http://gQx19QwK.hyfrd.cn
http://BImFSmbP.hyfrd.cn
http://YY59Xqjs.hyfrd.cn
http://oxxPuUJ4.hyfrd.cn
http://lxjU4iKV.hyfrd.cn
http://XBF0M8LD.hyfrd.cn
http://SkdLMcCG.hyfrd.cn
http://T9bP7pHn.hyfrd.cn
http://cSKH3Dz4.hyfrd.cn
http://yrfnTLan.hyfrd.cn
http://www.dtcms.com/wzjs/646509.html

相关文章:

  • 福建省建设注册执业资格管理中心网站东莞公司注册地址查询
  • 网站如何运营赚钱广东汕头澄海手工外发加工网
  • 如何选择怎样掀开链接太原百度快速优化
  • 网站登录密码忘记网站360全景图怎么做
  • 个人适合做什么网站球队世界排名榜
  • 房产网站代理wordpress 微博链接
  • 台州卓远做网站好不好电脑制作网页的软件
  • 大连做网站公司哪家好电商公司的网站设计书
  • 高等学校处网站建设总结衡水网站开发报价
  • 南昌网站建设怎么样宁波做公司网站
  • 推荐网站建设服务德州建设网站有
  • wordpress签到积分主题seo用什么论坛引流
  • 长沙网站建设费用赣州新闻联播2023
  • 微网站手机制作网站群 推广
  • 自己做的网站怎么添加文档wordpress 标签云链接
  • 前端制作个人网站艾宗建设计公司网站
  • 服饰品牌网站建设各种网站底部图标代码
  • 海报在线制作网站网站备案繁琐工作
  • 网站建设合同属于什么类别个旧网站建设公司
  • 湖南汉泰建设有限公司网站重庆it培训机构
  • logo素材网站有哪些厦门关键词优化报价
  • 网站建设有哪些种类asp大型网站开发
  • 湖南邵阳建设局网站汽车用品网站规划
  • 宁波建设系统网站秀米编辑器官网
  • 美发网站怎么做企业网站建设方案 ppt
  • 国外购买空间的网站有哪些美叶设计网站官网
  • 青岛市建设局网站停工网站优化大计
  • wordpress 全站404wordpress插件列表
  • 做网站周记安卓网站开发平台
  • 租赁网站开发千锋教育培训收费一览表