Realize o efeito de paginação da tabela com base em vue3+el-pagination
vue3+element-plus traz grande conveniência para nosso desenvolvimento front-end
1. el-table + el-pagination
<el-table
:data="
goods.slice((currentPage - 1) * pageSize, currentPage * pageSize)
"
style="width: 100%"
>
<!-- 根据选中的每页允许展示的数据行数和当前的页码进行数据的切分 -->
</el-table>
<el-pagination
v-model:currentPage="currentPage"
v-model:page-size="pageSize"
:page-sizes="[2, 4, 6, 8, 10]"
:small="small"
:disabled="disabled"
:background="background"
layout="total, sizes, prev, pager, next, jumper"
:total="goods.length"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
<!--
@current-change="handleCurrentChange" // current-change 改变时触发, 新当前页
@size-change="handleSizeChange" // pageSize改变时触发 新每页条数
page-sizes 每页显示个数选择器的选项设置
disabled 是否禁用分页
background 是否为分页按钮添加背景色 默认是false
total //数据的总条目数
-->
2. Código do segmento de dados
const data = reactive({
goods:[],//需展示的数据
currentPage:1, //当前页码
pageSize:10 //每页显示的行数
})
3. Exiba o número de série dos dados.
Determine se esta função é necessária de acordo com os requisitos de negócios.
<el-table-column label="序号">
<template #default="scope">
{
{ scope.$index + (currentPage - 1) * pageSize + 1 }}
</template>
</el-table-column>
Algumas mudanças ocorreram no uso da sintaxe de interpolação vue3 e vue2
4. Sintaxe de interpolação Vue2
<template slot-scope="scope">
</template>
Observe que apenas template pode ser usado em vue3, # é equivalente a slot=, onde default pode ser nomeado à vontade