获取列表数据,实现分页,搜索功能

 input输入框通过v-model绑定query Info中的query查询参数,点击搜索的时候重新获取数据

<el-input placeholder="请输入内容" v-model="queryInfo.query" clearable @clear="getGoodList">
          <el-button slot="append" icon="el-icon-search" @click="getGoodList"></el-button>
        </el-input>

data() {
    return {
      goodsList: [], // 商品列表
      // 查询参数对象
      queryInfo: {
        query: "",
        pagenum: 1,
        pagesize: 10,
      },
      total: 0,
    };
  },

async getGoodList() {
      const { data: res } = await this.$http.get("goods", {
        params: this.queryInfo,
      });
      console.log(res);
      if (res.meta.status !== 200)
        return this.$message.error("获取商品列表失败");
      this.$message.success("获取商品列表成功");
      this.goodsList = res.data.goods;
      console.log(this.goodsList);
      this.total = res.data.total;
    }

分页

<el-pagination
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
      :current-page="queryInfo.pagenum"
      :page-sizes="[5, 10, 15, 20]"
      :page-size="queryInfo.pagesize"
      layout="total, sizes, prev, pager, next, jumper"
      :total="total"
      background
 >


// 分页 -> 条数发生变化时触发
    handleSizeChange(newSize){
        this.queryInfo.pagesize = newSize
        this.getGoodList()
    },
    // 分页 -> 页码发生变化时触发
    handleCurrentChange(newPage){
        this.queryInfo.pagenum = newPage
        this.getGoodList()
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要有一个后端 API,它能够接收搜索关键词和分页参数,并返回相应的数据。这个 API 可以用任何一种后端框架来实现,比如 Node.js 的 Express、Python 的 Django 或 Flask 等等。 然后,在前端,你需要用 Vue.js实现搜索分页功能。具体步骤如下: 1. 创建一个 Vue.js 的组件,用来显示搜索结果和分页器。这个组件需要有以下几个属性: - searchKeyword: 搜索关键词 - currentPage: 当前页码 - pageSize: 每页显示的数据数量 - total: 搜索结果总数 - items: 当前页的搜索结果数据 2. 在这个组件的 mounted 钩子函数中,发送一个请求到后端 API,获取搜索结果的第一页数据,并将 total 和 items 属性更新为后端 API 返回的数据。 3. 在组件中添加一个 input 标签和一个按钮,用来输入搜索关键词和触发搜索操作。当用户输入关键词并点击按钮时,应该调用一个 search 方法,将 searchKeyword 属性更新为用户输入的关键词,同时将 currentPage 属性重置为 1。 4. 在组件中添加一个分页器,当用户点击分页器上的页码时,应该调用一个 changePage 方法,将 currentPage 属性更新为用户点击的页码。 5. 在组件中添加一个 watch 钩子函数,当 searchKeyword 或 currentPage 属性发生变化时,应该发送一个请求到后端 API,获取相应的数据,并将 total 和 items 属性更新为后端 API 返回的数据。 6. 最后,在组件中渲染搜索结果和分页器的 HTML 标记,使用 v-for 指令来遍历 items 数组,并使用 v-if 指令来判断当前页码是否与分页器上的页码相等,以便高亮显示当前页码。 以上就是配合分页功能的 vuejs 搜索关键词获取数据的思路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值