1. 程式人生 > >vue+elementUI元件table實現前端分頁功能

vue+elementUI元件table實現前端分頁功能

前端分頁和後端分頁就是請求的差異,前端分頁的話只請求一次,所以要在render table元件的時候控制下資料

:data="tableData.slice((currentPage-1)*pageSize,currentPage*pageSize)"   //不多解釋

再就是設定分頁器total等於table資料的長度

:total="tableData.length"

點選分頁器的操作

methods: {
        handleSizeChange(val) {
            console.log(`每頁 ${val} 條`);
            this.currentPage = 1;
            this.pageSize = val;
        },
        handleCurrentChange(val) {
            console.log(`當前頁: ${val}`);
            this.currentPage = val;
        }
    }

千言萬語不如上個demo~

<template>
    <div>
        <el-table :data="tableData.slice((currentPage-1)*pageSize,currentPage*pageSize)" style="width: 100%">
            <el-table-column prop="date" label="日期" width="180">
            </el-table-column>
            <el-table-column prop="name" label="姓名" width="180">
            </el-table-column>
            <el-table-column prop="address" label="地址">
            </el-table-column>
        </el-table>
        <!-- 分頁器 -->
        <div class="block" style="margin-top:15px;">
            <el-pagination align='center' @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[1,5,10,20]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="tableData.length">
            </el-pagination>
        </div>
    </div>

</template>

  <script>
export default {
    data() {
        return {
            tableData: [
                {
                    date: "2016-05-02",
                    name: "王小虎",
                    address: "上海市普陀區金沙江路 1518 弄"
                },
                {
                    date: "2016-05-04",
                    name: "王小虎",
                    address: "上海市普陀區金沙江路 1517 弄"
                },
                {
                    date: "2016-05-01",
                    name: "王小虎",
                    address: "上海市普陀區金沙江路 1519 弄"
                },
                {
                    date: "2016-05-03",
                    name: "王小虎",
                    address: "上海市普陀區金沙江路 1516 弄"
                }
            ],
            currentPage: 1, // 當前頁碼
            total: 20, // 總條數
            pageSize: 1 // 每頁的資料條數
        };
    },
    methods: {
        handleSizeChange(val) {
            console.log(`每頁 ${val} 條`);
            this.currentPage = 1;
            this.pageSize = val;
        },
        handleCurrentChange(val) {
            console.log(`當前頁: ${val}`);
            this.currentPage = val;
        }
    }
};
</script>