elememt-plus安装见上文
表格的特性
element-plus中的表格和原版表格最大的不同是写法不同,原版表格以行的方式写,element-plus以列的方式写。
element-plus的表格可以更方便的展示数据,只需要考虑数据的格式即可。
表格标签
表格标签有两种,el-table 和 el-table-column,分别代表表格本身和表格的列。这里表格不需要定义有多少行,网页会根据给定的数据自动生成行。
<template>
<el-table><el-table-column></el-table-column>
</el-table>
</template> <script lang="ts" setup> </script>
效果:
表格属性
elementplus的表格有很多属性,el-table的属性有比如承载数据的:data属性,控制样式的border属性,stripe属性等。
el-table-column中也有定义表头的label,承载字段的prop等。
<template>
<el-table :data="userList" border><!-- 这里为表格加了边框 --><el-table-column label="ID" prop="id"></el-table-column><el-table-column label="ID" prop="name"></el-table-column><el-table-column label="ID" prop="hobby"></el-table-column><el-table-column label="ID" prop="age"></el-table-column>
</el-table>
</template> <script lang="ts" setup> import { onMounted, ref } from 'vue'
const userList = ref([])
const getUserList = () => {//将来会修改为从数据库中获取数据const data = [{id: 1,name: 'Tom',hobby: 'play Jerry',age: 8}, {id: 2,name: 'Jerry',hobby: 'play Spike',age: 7}, {id: 3,name: 'Spike',hobby: 'play Tom',age: 6}]userList.value = data
}
onMounted(() => getUserList())
</script>
效果如下:
表格有很多属性,可以实现各种表格样式展示数据和美化网页,具体属性可以访问官网查看。
插槽
template标签 #default是标签的分类,scope代表拿到的数据是父组件传递给子组件插槽的所有上下文数据。使用scope.row 获取整行数据,再通过事件触发方法就可以获取这一行数据的复制了。
<template><el-table :data="userList" border>、<el-table-column label="ID" prop="id"></el-table-column><el-table-column label="ID" prop="name"></el-table-column><el-table-column label="ID" prop="hobby"></el-table-column><el-table-column label="ID" prop="age"></el-table-column><el-table-column><template #default="scope"><el-button type="primary" @click="handleEdit(scope.row)">编辑</el-button><el-button type="danger" @click="handleDelete(scope.row)">删除</el-button></template></el-table-column></el-table>
</template>