React에서 더 많은 로직을 생성하는 방법
4456 단어 reacthtmlcssjavascript
따라서 일반적으로 우리는 건너뛰기 값을 전달하는 백엔드 API를 사용하여 더 많은 로직을 사용하는 것을 선호하며 다음 데이터 세트를 반환하지만 일부 특정 경우에 대해 프런트엔드에서 동일한 로직을 구현하려는 경우에는 어떻게 해야 합니까? 이 기사에서는 React에서 더 많은 로직을 생성하는 방법을 배웁니다.
체크아웃 this 백엔드에서 더 나은 페이지 매김 방법.
문제
프런트엔드에 100개 객체의 배열이 있고 한 번에 n개 항목만 표시하고 다음 데이터 집합이 l*oad more* 버튼 클릭 시 로드된다고 가정해 보겠습니다.
우리는 일반적으로 건너뛰기 값을 전달하는 백엔드를 사용하여 이 작업을 수행하고 다음 데이터 집합을 반환하지만 이제 React Frontend에서 동일한 작업을 수행하려고 합니다.
해결책
우선 더 많은 로직을 로드하기 위한 변수가 거의 없을 것입니다.
데이터의 길이는 LENGTH를 사용하여 지정됩니다.
const LENGTH = 50;
그 후 길이가 LENGTH인 Array DATA를 만들었습니다.
const DATA = [ ...Array(LENGTH).keys() ];
그런 다음 UI, 즉 IMAGE_SRC에 표시되는 임의의 이미지입니다.
const IMAGE_SRC="https://source.unsplash.com/random";
한도는 10입니다. 즉, LIMIT
const LIMIT = 10;
const LENGTH = 50;
const DATA = [ ...Array(LENGTH).keys() ];
const IMAGE_SRC="https://source.unsplash.com/random";
const LIMIT = 10;
이제 우리는 몇 가지 상태를 작성할 것입니다.
또한 단순화를 위해 lodash의 슬라이스와 연결을 사용할 것입니다.
더 많은 기록이 있는지 확인하기 위해.
const [showMore,setShowMore] = useState(true);
초기 렌더링 목록
const [list,setList] = useState(slice(DATA, 0, LIMIT));
인덱스 관리용.
const [index,setIndex] = useState(LIMIT);
우리의 load more 로직은 다음과 같은 일을 할 것입니다.
const loadMore = () =>{
const newIndex = index + LIMIT;
const newShowMore = newIndex < (LENGTH - 1);
const newList = concat(list, slice(DATA, index, newIndex));
setIndex(newIndex);
setList(newList);
setShowMore(newShowMore);
}
우리의 Render 메서드는 이미지 목록과 추가 로드 버튼을 반환할 것입니다.
<div className="App">
<div className="image-container">
{list.map(()=><img src={IMAGE_SRC} alt="random"/>)}
</div>
{showMore && <button onClick={loadMore}> Load More </button>}
</div>
전체 구성 요소는 다음과 같습니다.
import React,{useState} from "react";
import {
slice, concat,
} from 'lodash';
import "./styles.css";
const LENGTH = 50;
const DATA = [ ...Array(LENGTH).keys() ];
const IMAGE_SRC="https://source.unsplash.com/random";
const LIMIT = 10;
export default function App() {
const [showMore,setShowMore] = useState(true);
const [list,setList] = useState(slice(DATA, 0, LIMIT));
const [index,setIndex] = useState(LIMIT);
const loadMore = () =>{
const newIndex = index + LIMIT;
const newShowMore = newIndex < (LENGTH - 1);
const newList = concat(list, slice(DATA, index, newIndex));
setIndex(newIndex);
setList(newList);
setShowMore(newShowMore);
}
return (
<div className="App">
<div className="image-container">
{list.map(()=><img src={IMAGE_SRC} alt="random"/>)}
</div>
{showMore && <button onClick={loadMore}> Load More </button>}
</div>
);
}
이와 유사한 출력이 표시됩니다.
React Frontend 로드 로직이 준비되었습니다.
Reference
이 문제에 관하여(React에서 더 많은 로직을 생성하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/narendersaini32/how-to-create-load-more-logic-in-react-474m텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)