react 使用useEffect做分页取数据

使用useState存数据

使用useEffect监听页码page,页码改变重新获取数据

点击按钮加载更多使page+1

import React, { useState, useEffect } from "react";

interface GoodsList {
  goods_id: string;
  name: string;
  cover_url: string;
}

// 分页取数据

function PageData() {
  const [list, setList] = useState<GoodsList[]>([]); //商品列表
  const [page, setPage] = useState(1); // 商品页

  useEffect(() => {
    // 在vite.config.ts 文件中使用proxy代理(解决跨域)
    fetch(
      `......................请求地址......................limit=10&page=${page}`
    )
      .then((res) => res.json())
      .then((res) => {
        setList([...list, ...res.data.list]); // 数组拼接
      });
  }, [page]); // 监听页码,页码改变重新获取数据
  return (
    <div>
      <ul>
        {list.map((item) => (
          <li key={item.goods_id}>
            <p>{item.name}</p>
            <img src={item.cover_url} alt="" style={{ width: "120px" }} />
          </li>
        ))}
        <button
          onClick={() => {
            setPage(page + 1);
          }}
        >
          加载更多
        </button>
      </ul>
    </div>
  );
}

export default PageData;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值