vue结合elmentui实现前端分页

1.首先需要明确的事情是,前端分页是由于后端的数据并没有进行分页,后端会将全部数据返给前端,而前端要做的就是在前端进行前端分页,避免数据过大,造成加载卡顿,用户流失。

2.正式开始:

data数据总览:

data() {
    return {
      imglist: [], //总图片列表
      litterimglist: [], //分页图片列表
      total: "", //图片总数
      page: 1, //页数
      pagesize: 5, //每页展示的图片数量
      url: "http://127.0.0.1",//请求地址
    }
  },

2.1通过请求获取全部数据列表

//获取所有图片列表
    async getAllImg() {
      const { data: res } = await this.$axios.get(this.url + "/api/img")//axios请求
      if (res.status !== 0) return this.$message.error("获取图片列表失败")
      this.imglist = res.data//获取全部图片数据列表成功,将其存到总图片列表imglist中
      this.total = res.data.length//将图片总数据条数存到total中
      this.getPassImg()//调用图片分页函数
    },

2.2分页请求数据列表函数

//分页请求数据列表
//通过对原图片数据列表进行拆分,从而实现分页显示
    getPassImg() {
      this.litterimglist = this.imglist.slice(
        (this.page - 1) * this.pagesize,
        this.page * this.pagesize
      )
    },

2.3引入elmentui的分页组件

<el-pagination
          @size-change="handleSizeChange"//改变事件
          @current-change="handleCurrentChange"//改变事件
          :current-page="page"//当前页数
          :page-sizes="[5, 10, 15, 20]"
          :page-size="5"//每页显示多少
          layout="total, sizes, prev, pager, next, jumper"//组件样式
          :total="total"//总条数
        >
        </el-pagination>

2.4事件函数

//点击每页显示多少条
    handleSizeChange(val) {
      this.pagesize = val//将每页显示多少天的值赋给每页条数
      this.getPassImg()//调用获取分页图片函数获取新值
    },
    //点击对应页数修改条数
    handleCurrentChange(val) {
      this.page = val//将当前页数赋值给page
      this.getPassImg()//调用获取分页图片函数获取新值
    },

3.大功告成。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]中的代码是一个分页器组件的示例,其中使用了Vue.js和Element UI库来实现。该组件包含了上一页、下一页、总页数等功能,并通过v-for指令和数组来渲染中间的连续页码部分。 引用\[2\]中的代码是一个使用Express框架搭建的后端服务器,用于处理前端发送的请求并返回数据。其中通过读取一个名为images.json的文件来获取数据,并根据前端传递的pageNo和pageSize参数进行分页处理,最后将分页后的数据返回给前端。 引用\[3\]中的代码是一个Vue组件的示例,该组件包含了一个图片列表和一个自定义的分页器组件。在created钩子函数中,通过调用img方法来获取图片数据,并将数据赋值给imgs和total变量。同时,该组件还定义了一个getPages方法,用于处理分页器传递的当前页数,并通过调用img方法来更新图片数据。 综上所述,要实现文件切片上传的代码,你可以参考以上示例代码,并根据具体需求进行相应的修改和扩展。 #### 引用[.reference_title] - *1* *2* *3* [不用element-ui你会写分页器吗,并实现分段数据请求](https://blog.csdn.net/m0_51311990/article/details/127601162)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值