vue前端分页过滤

这是一个关于Vue.js实现的商品页面示例,包括输入框搜索功能、表格展示商品信息及分页操作。通过Axios库与后台接口进行数据交互,获取并显示商品的编号、名称、数量、价格和产地。同时,页面提供了上一页和下一页的按钮,根据接收到的路由参数更新商品列表。
摘要由CSDN通过智能技术生成
<template>
  <div>
    <h1>商品页面</h1>
    <!-- 写搜索的样式 -->
    <input type="text" v-model="name" />
    <!-- 绑定事件 -->
    <button @click="search">查询</button><br /><br />
    <table border="1px" width="700px" align="center">
      <tr>
        <th>编号</th>
        <th>名字</th>
        <th>数量</th>
        <th>价格</th>
        <th>产地</th>
      </tr>
      <tr v-for="(item, i) in lst" :key="i">
        <td>{{ item.id }}</td>
        <td>{{ item.name }}</td>
        <td>{{ item.num }}</td>
        <td>{{ item.price }}</td>
        <td>{{ item.address }}</td>
      </tr>
    </table>
    <br />
    <!-- 给两个按钮绑定相同的事件 -->
    <!-- 给两个事件传递不同的路由参数 -->
    <!-- v-show v-if:后边为true显示对应的内容 为false时不显示对应的内容 -->
    <button v-show="previous" @click="getList(previous)">上一页</button> |
    <button v-show="next" @click="getList(next)">下一页</button>
  </div>
</template>

<script>
import Axios from "axios";
export default {
  data() {
    return {
      lst: [],
      name: "",
      // 定义两个空变量用来接收上一页下一页的路由
      previous: "",
      next: "",
    };
  },
  methods: {
    search() {
      // 点击按钮向搜索的接口发起请求,获取搜索出来的数据
      Axios.get("http://127.0.0.1:8000/good/?search=" + this.name)
        .then((resp) => {
          console.log(resp.data);
          // 分页提供的数据存在results里
          this.lst = resp.data.results;
          // 给next和previous赋值---不赋值点击上下一页按钮报404错误
          this.previous = resp.data.previous;
          this.next = resp.data.next;
        })
        .catch((err) => {
          console.log(err);
        });
    },
    // url:代表点击上一页按钮和下一页按钮传递过来的路由(接口)
    getList(url) {
      Axios.get(url)
        .then((resp) => {
          console.log(resp);
          // 将数据赋值给lst
          this.lst = resp.data.results;
          // 给变量赋值
          this.previous = resp.data.previous;
          this.next = resp.data.next;
        })
        .catch((err) => {
          console.log(err);
        });
    },
  },
};
</script>

<style></style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值