React實(shí)現(xiàn)分頁效果
本文實(shí)例為大家分享了React實(shí)現(xiàn)分頁效果的具體代碼,供大家參考,具體內(nèi)容如下
首先確保已經(jīng)安裝了antd,axios
jsx文件:
import React, { useState, useEffect } from 'react' import { Pagination } from 'antd'; import './loading.scss' import Unit from '../hml' const App = () => { // 設(shè)置第幾頁 const [num, setNum] = useState(1) // 獲取的數(shù)據(jù)載體 const [data, setData] = useState([]) //剛才用掛載方法,二次獲取不好用 useEffect(() => { Unit.getApi2('/home/mediareports', { // 數(shù)據(jù)頁 page_number: num, // 每頁多少數(shù)據(jù) page_size: 10 }, {}).then((res) => { //獲取數(shù)據(jù) setData(res.data.data) }) }, [num]) const add = (e) => { //每次點(diǎn)擊向前翻一頁 setNum(e) } return ( <> <ul> {/* map生成數(shù)據(jù) */} { data.map((item,index)=>{ return <a href={item.jump_url} key={index}><br /> { item.main_title } </a> }) } </ul> {/* 這里的問題雖然解決了,但是不知道為什么上傳 e 能獲取當(dāng)前點(diǎn)擊的下標(biāo)而不是元素,不過我感覺應(yīng)該和total有關(guān) */} <Pagination defaultCurrent={num} total={500} onChange={(e)=>add(e)}/> </> ) } export default App
loading.scss文件:
// antd沒有樣式,下面代碼可以解決這個問題 @import '~antd/dist/antd.css';
hml.js:(這就是我發(fā)的那個axios封裝)
import axios from 'axios'; const Unit = { async getApi(ajaxCfg){ let data = await axios.get(ajaxCfg.url,{params:ajaxCfg.cfg}, { headers: ajaxCfg.headers }) return data; }, async getApi2(url,cfg,headers){ let data = await axios.get(url,{params:cfg}, { headers: headers }) return data; }, async postApi(url,cfg,headers){ let fd = new FormData(); for(let key in cfg){ fd.append(key, cfg[key]); } let data = await axios.post(url,fd, { headers: headers }) return data; }, async putApi(url,cfg,headers){ // import qs from 'qs'; // let data = await axios.put(url,qs.stringify(cfg),{ // headers: { // 'Content-Type':'application/x-www-form-urlencoded', // } // }) // return data; }, async requestApi(cfg,headers,file){ let fd = new FormData(); fd.append('param', JSON.stringify(cfg)); if(file){ // 上傳證明 if(file.length){ for(let i=0,len=file.length;i<len;i++){ fd.append('files', file[i]); } }else { // 單個上傳 for(let key in file){ fd.append(key, file[key]); } } } let data = await axios.post('/batch',fd, { headers: headers }) return data; } } export default Unit;
setupProxy.js:
const { createProxyMiddleware } = require('http-proxy-middleware'); module.exports = function (app) { app.use( // 設(shè)置路徑 '/home', createProxyMiddleware({ target: 'https://home-api.pinduoduo.com', changeOrigin: true, }) ); };
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
React Native中TabBarIOS的簡單使用方法示例
最近在學(xué)習(xí)過程中遇到了很多問題,TabBarIOS的使用就是一個,所以下面這篇文章主要給大家介紹了關(guān)于React Native中TabBarIOS簡單使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-10-10使用react-router4.0實(shí)現(xiàn)重定向和404功能的方法
本篇文章主要介紹了使用react-router4.0實(shí)現(xiàn)重定向和404功能的方法,具有一定的參考價值,有興趣的可以了解一下2017-08-08React實(shí)現(xiàn)簡單登錄的項(xiàng)目實(shí)踐
登錄、注冊、找回密碼是前端項(xiàng)目經(jīng)常遇到的需求,本文主要介紹了React實(shí)現(xiàn)簡單登錄的項(xiàng)目實(shí)踐,具有一定的參考價值,感興趣的可以了解一下2024-01-01React應(yīng)用框架Dva數(shù)據(jù)流向原理總結(jié)分析
這篇文章主要為大家介紹了React 應(yīng)用框架Dva數(shù)據(jù)流向原理總結(jié)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12詳解React項(xiàng)目中eslint使用百度風(fēng)格
這篇文章主要介紹了React項(xiàng)目中eslint使用百度風(fēng)格,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09React手寫簽名組件react-signature實(shí)現(xiàn)簽字demo
這篇文章主要為大家介紹了React手寫簽名組件react-signature實(shí)現(xiàn)簽字demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12