Realize table paging effect based on vue3+el-pagination

Realize table paging effect based on vue3+el-pagination

vue3+element-plus brings great convenience to our front-end development
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. Data segment code

const data = reactive({
    
    
	goods:[],//需展示的数据
	currentPage:1, //当前页码
    pageSize:10 //每页显示的行数
})

3. Display the serial number of the data.
Determine whether this function is needed according to business needs.

<el-table-column label="序号">
    <template #default="scope">
         {
   
   { scope.$index + (currentPage - 1) * pageSize + 1 }}
    </template>
</el-table-column>

Some changes have taken place in the use of vue3 and vue2 interpolation syntax

4. Vue2 interpolation syntax

<template slot-scope="scope">
</template>

Note that only template can be used in vue3, # is equivalent to slot=, where default can be named at will

Guess you like

Origin blog.csdn.net/m0_58991732/article/details/125869587