element table实现前端分页

前端对于,表格数据做分页,可以通过数组slice,进行处理,将数组分成我们想要的条数。

slice() 方法可从已有的数组中返回选定的元素。

slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

注意: slice() 方法不会改变原始数组。

slice()案例:

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1,3);
citrus 结果输出:

Orange,Lemon

效果图,如下:

详细解析,可以看代码中的注释。 

代码html部分: 

        <div class="main-table">
            <el-table
                :data="tableData.slice((currentPage-1)*pagesize,currentPage*pagesize)"
                style="width: 100%">
     
                <el-table-column
                    prop="name"
                    label="政策名称"
                    width="850">
                </el-table-column>
                <el-table-column
                    prop="type"
                    label="政策类别"
                    >
                </el-table-column>
                <el-table-column
                    prop="date"
                    label="发布时间"
                    >
                </el-table-column>
                <el-table-column
                    label="操作"
                    width="100">
                    <template slot-scope="scope">
                        <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
                    </template>
                </el-table-column>
            </el-table>
        </div>
        <div class="main-page">
         
            <el-pagination
                @current-change="handleCurrentChange"
                background
                layout="prev, next" 
                :page-size="pagesize"
                :total="totalNum">
            </el-pagination>
            <!-- layout="prev, next" 表示只展示上一页和下一页的部分 -->
             <!-- :page-size设置每页有多少条数据 -->
              <!-- :total="totalNum" 表示总的条数 -->
              <!-- current-change当前页发生改变时触发 -->
        </div>

 js部分:

    data(){
        return{
            currentPage:1, // 当前的页数
            pagesize:8, //每页的条数
            totalNum:0, // 多少条数据
            tableData: [{
                date: "2016-05-02",
                name: "王小虎",
                type: "上海",
                city: "普陀区",
                address: "上海市普陀区金沙江路 1518 弄",
                zip: 200333
            }, {
                date: "2016-05-04",
                name: "王小虎",
                type: "上海",
                city: "普陀区",
                address: "上海市普陀区金沙江路 1517 弄",
                zip: 200333
            }, {
                date: "2016-05-01",
                name: "王小虎",
                type: "上海",
                city: "普陀区",
                address: "上海市普陀区金沙江路 1519 弄",
                zip: 200333
            }, {
                date: "2016-05-03",
                name: "王小虎",
                type: "上海",
                city: "普陀区",
                address: "上海市普陀区金沙江路 1516 弄",
                zip: 200333
            }]
        };
    },
    mounted(){
        console.log(this.$route);
        this.totalNum = this.tableData.length; // 总的条数,用于展示共多少条,以及控制上一页和下一页的
        document.querySelector(".btn-prev").innerHTML = "上一页"; // 更改上一页展示内容
        document.querySelector(".btn-next").innerHTML = "下一页"; // 更改下一页展示内容
    },
    methods:{

        handleCurrentChange(val) {
            console.log(val, "456456");
            this.currentPage = val;
        },
    },

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Vue 和 Element UI 中,实现前端表格分页可以遵循以下步骤: 1. 将表格数据存储在一个数组中,例如 tableData。 2. 定义每页显示的数据量,例如 pageSize。 3. 定义当前页码,例如 currentPage。 4. 根据 pageSize 和 currentPage 来计算当前页应该显示的数据,例如: ``` const start = (currentPage - 1) * pageSize; const end = start + pageSize; const pageData = tableData.slice(start, end); ``` 5. 将 pageData 显示在表格中。 6. 在表格下方添加分页组件,使用 Element UI 的 el-pagination 组件即可。将 total 属性设为 tableData.length,pageSize 属性设为 pageSize,v-model 绑定 currentPage。 完整代码示例: ``` <template> <div> <el-table :data="pageData"> <!-- 表格列 --> </el-table> <el-pagination :current-page="currentPage" :page-size="pageSize" :total="tableData.length" @current-change="handleCurrentChange" /> </div> </template> <script> export default { data() { return { tableData: [], // 表格数据 pageSize: 10, // 每页显示的数据量 currentPage: 1, // 当前页码 }; }, computed: { pageData() { const start = (this.currentPage - 1) * this.pageSize; const end = start + this.pageSize; return this.tableData.slice(start, end); }, }, methods: { handleCurrentChange(currentPage) { this.currentPage = currentPage; }, }, }; </script> ``` 这样就可以实现基本的前端表格分页了。如果需要支持排序、筛选等功能,可以在计算 pageData 的时候加入对应的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值