前端用element-ui 完成分页

<template>
  <div>
      <el-table

 <!--  :data="tableData.slice((currentPage1-1)*pageSize,currentPage1*pageSize)分页这步是重点-->

      :data="tableData.slice((currentPage1-1)*pageSize,currentPage1*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">
    <span class="demonstration">完整功能</span>
    <el-pagination
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
      :current-page="currentPage1"
      :page-sizes="[5, 20, 30, 40]"
      :page-size="pageSize"
      layout="total, sizes, prev, pager, next, jumper"
      :total="total">
    </el-pagination>
  </div>
  </div>
</template>

<script>
export default {
 methods: {
      handleSizeChange(val) {
        console.log(`每页 ${val} 条`);
        console.log(val);
//一页显示多少条
this.pageSize=val
      },
      handleCurrentChange(val) {
        console.log(`当前页: ${val}`);
        console.log(val);
//默认第一页,当你点击就把点击的那页赋值给currentPage1
        this.currentPage1=val
      }
    },
    data() {
      return {
        currentPage1: 1,//默认显示第一页
        total:20,//这是总是开始可以直接赋值为空都可以
        pageSize:5,//每页显示多少条
//这个数据是我模仿的,一般是后端给的
         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 弄'
          },
          {
            date: '2016-05-03',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1516 弄'
          },
       
          ]
      };
    },
    mounted(){
      console.log(this.tableData);
      this.total=this.tableData.length //赋值的地方只要不是created都可以,总数
    }
}
</script>

<style>

</style>

一般情况叫后端写分页,数据少的话可以自己写

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以使用 element-ui 中的 `el-pagination` 组件进行分页查询的实现。 首先,需要在页面中导入 `el-pagination` 组件和相关的样式文件: ```html <template> <div> <!-- 分页列表 --> <el-pagination :page-size="pageSize" :current-page="currentPage" :total="total" @current-change="handleCurrentChange" layout="total, sizes, prev, pager, next, jumper" /> <!-- 表格内容 --> <el-table :data="tableData" style="width: 100%" > <!-- 表头 --> <el-table-column prop="name" label="姓名" /> <el-table-column prop="age" label="年龄" /> <el-table-column prop="gender" label="性别" /> </el-table> </div> </template> <script> import { reactive, watch } from 'vue' import { ElTable, ElTableColumn, ElPagination } from 'element-plus' import 'element-plus/lib/theme-chalk/index.css' export default { components: { ElTable, ElTableColumn, ElPagination }, setup() { // 响应式数据 const state = reactive({ tableData: [], // 表格数据 total: 0, // 总记录数 currentPage: 1, // 当前页码 pageSize: 10 // 每页显示数量 }) // 监听分页数据变化 watch([() => state.currentPage, () => state.pageSize], ([currentPage, pageSize]) => { // 根据当前页码和每页显示数量进行查询 fetchData(currentPage, pageSize) }) // 查询数据方法 const fetchData = (page, size) => { // 发送请求获取数据 // ... // 更新响应式数据 state.tableData = [/* ... */] state.total = 100 // 假设总记录数为100条 } // 处理页码变化事件 const handleCurrentChange = (currentPage) => { state.currentPage = currentPage } return { ...state, fetchData, handleCurrentChange } } } </script> ``` 在上面的代码中,我们使用了 `reactive` 函数创建了一个响应式的 `state` 对象,其中包含了表格数据、总记录数、当前页码和每页显示数量等数据。在 `watch` 函数中监听了当前页码和每页显示数量的变化,并在变化时触发 `fetchData` 方法进行数据查询。 在模板中,我们使用了 `el-pagination` 组件和 `el-table` 组件来构建分页查询列表。在 `el-pagination` 组件中,我们通过绑定 `pageSize`、`currentPage` 和 `total` 等属性来实现分页功能,并通过 `layout` 属性来配置分页组件的显示方式。在 `el-table` 组件中,我们使用了 `prop` 和 `label` 属性来定义表格的列信息,并通过 `:data` 属性来绑定表格的数据源。 最后,在 `setup` 函数中,我们定义了 `fetchData` 方法和 `handleCurrentChange` 方法来处理数据查询和页码变化事件,并将这两个方法返回给模板。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值