vue element 前端的分页

前提:一般的列表分页,都是通过后台返回的数据进行分页的,但是有的表格数据需要先在前端处理,在保存之前不经过后台接口存储,这是就需要前端进行分页处理

代码:用slice截取

const from = (this.currentPage - 1) * this.pageSize  拿到开始截取的下标
const to = this.currentPage * this.pageSize 拿到停止截取的下标
this.tableData = []  //tableData 是展示的数组   totalList 是拿到的数据总数
this.tableData = this.totalList.slice(from, to)

前端分页并且完成删除和批量删除的功能

删除:

deleteHandle(index) {
      const from = (this.currentPage - 1) * this.pageSize  //计算分页数据的下标
      let list = [] 
      list = [...this.totalList] 
      this.totalList = list.filter((item, idx) => idx !== index + from)
      this.tableData = this.totalList
      this.total = this.totalList.length
      this.$message.success('删除成功')
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用`element-ui`中提供的`el-pagination`组件实现分页,具体实现步骤如下: 1. 在Vue实例中定义一个变量来保存当前页码和每页显示的数据量。 ```javascript data() { return { currentPage: 1, pageSize: 10, total: 0, tableData: [] } } ``` 2. 在Vue实例中定义一个方法来处理数据的分页逻辑。该方法根据当前页码和每页显示的数据量,在所有数据数组中截取出对应页码的数据。 ```javascript methods: { handleCurrentChange(val) { this.currentPage = val; const start = (this.currentPage - 1) * this.pageSize; const end = start + this.pageSize; this.tableData = this.allData.slice(start, end); } } ``` 3. 在Vue实例中定义一个钩子函数created(),在该函数中调用后端接口获取所有数据,并将数据保存到Vue实例中的一个数组中。 ```javascript created() { // 调用后端接口获取所有数据 axios.get('api/getAllData').then(response => { this.allData = response.data; this.total = this.allData.length; // 调用handleCurrentChange方法,显示第1页数据 this.handleCurrentChange(1); }).catch(error => { console.log(error); }); } ``` 4. 在Vue模板中使用`el-pagination`组件,并将该组件的`total`属性设置为保存所有数据的数组的长度,将该组件的`page-size`属性设置为每页显示的数据量,将该组件的`current-page`属性绑定到Vue实例中定义的变量上,将该组件的`@current-change`事件绑定到Vue实例中定义的方法上。 ```html <el-pagination :total="total" :page-size="pageSize" v-model="currentPage" @current-change="handleCurrentChange"> </el-pagination> ``` 5. 在Vue模板中使用`v-for`指令循环遍历处理后的分页数据,并将每页显示的数据渲染到页面上。 ```html <el-table :data="tableData" style="width: 100%"> <el-table-column prop="name" label="姓名" width="180"> </el-table-column> <el-table-column prop="age" label="年龄" width="180"> </el-table-column> </el-table> ``` 以上是基本实现思路,具体实现细节可以根据具体需求进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值