[javascript] Parcel에서 인피니트 스크롤을 구현하는 방법은?
Parcel에서 인피니트 스크롤을 구현하는 방법은 다음과 같습니다.
- 관련 패키지 설치하기
npm install react-infinite-scroll-component
- React 컴포넌트 작성하기
import React, { useState } from 'react'; import InfiniteScroll from 'react-infinite-scroll-component'; const InfiniteScrollComponent = () => { const [items, setItems] = useState([]); // 초기 데이터 로딩 useEffect(() => { // 초기 데이터를 불러오는 API 호출 fetchInitialData(); }, []); // 더보기 버튼 클릭시 데이터 로딩 const fetchMoreData = () => { // 추가 데이터를 불러오는 API 호출 fetchNextData(); }; return ( <InfiniteScroll dataLength={items.length} next={fetchMoreData} hasMore={true} loader={<h4>Loading...</h4>} > {items.map((item, index) => ( <div key={index}>{item}</div> ))} </InfiniteScroll> ); }; export default InfiniteScrollComponent;
- 스타일 설정하기
InfiniteScroll 컴포넌트의 스타일을 사용자 정의하려면 CSS 파일에 다음과 같은 스타일을 추가해야 합니다.
.infinite-scroll-component { overflow: scroll; height: 400px; } .infinite-scroll-component > * { margin: 10px; }
- 사용하기
위에서 작성한 InfiniteScrollComponent를 다른 컴포넌트에서 사용하면 됩니다.
import React from 'react'; import InfiniteScrollComponent from './InfiniteScrollComponent'; const App = () => { return ( <div> <h1>인피니트 스크롤 예제</h1> <InfiniteScrollComponent /> </div> ); }; export default App;
- 결과 확인하기 위의 코드를 실행하면 초기 데이터가 로딩되고 스크롤을 내리면 추가 데이터가 동적으로 불러와지는 것을 확인할 수 있습니다.
참고 문서: