무한 스크롤을 구현하면 최종 사용자가 웹 페이지를 아래로 탐색할 때 애플리케이션이 추가 콘텐츠를 표시할 수 있으므로 페이지 매김이 필요하지 않습니다. 이러한 접근 방식은 앱 사용자가 방대한 정보 저장소를 중단 없이 탐색할 수 있도록 지원합니다.
Vue 애플리케이션 설정
이 튜토리얼에 설명된 단계를 성공적으로 실행하려면 Vue 3 및 기본 언어인 JavaScript에 대한 기본적인 이해가 필수적입니다. 또한 HTTP 요청을 관리하기 위한 Axios의 활용에 익숙해야 합니다.
컴퓨터에서 원하는 폴더로 이동하여 관련 npm 명령을 실행합니다. 이를 통해 선택한 환경 내에서 이 기능을 구현하기 위한 기반을 설정할 수 있습니다.
npm create vue
프로젝트 구성 프로세스를 시작하면 Vue에서 애플리케이션 프리셋 선택에 대해 문의합니다. 특정 사용 사례에 추가 기능이 필요하지 않으므로 사용 가능한 모든 옵션에서 “아니요”를 선택하는 것이 좋습니다.
필요한 종속성이 있는 새로 개발된 애플리케이션을 설정하려면 파일 시스템 내의 해당 폴더로 이동하여 터미널 또는 명령 프롬프트에서 여러 줄로 구성된 npm 설치 명령을 실행해야 합니다. 이 작업에는 노드 패키지 관리자의 레지스트리에서 관련 패키지를 자동으로 가져와 다운로드하고 나중에 사용할 수 있도록 프로젝트에 추가하는 지정된 명령을 입력하는 작업이 포함됩니다.
npm install axios @iconify/vue @vueuse/core
npm 명령을 실행하면 세 가지 소프트웨어 구성 요소, 즉 HTTP 트랜잭션 처리를 위한 axios, Vue 프레임워크 내에 아이콘을 원활하게 통합하기 위한 @iconify/vue, Vue의 올바른 기능에 필수적인 포괄적인 유틸리티 기능을 제공하는 @vueuse/core의 설치를 용이하게 해줍니다.
Axios는 다양한 소스에서 데이터를 검색할 수 있는 라이브러리이며, @iconify/vue는 애플리케이션에 아이콘을 쉽게 추가할 수 있도록 지원합니다. vueuse/core 패키지는 Vue 기반 프로젝트 내에서 무한 스크롤 기능을 구현하는 데 사용할 수 있는 useInfiniteScroll과 같은 여러 유틸리티 구성 요소를 포함합니다.
JSONPlaceholder API에서 더미 데이터 가져오기
무한 스크롤 기능을 구현하려면 데이터가 필요합니다. 이러한 데이터를 하드 코딩하거나 JSONPlaceholder 과 같은 무료 가짜 API 소스에서 데이터를 가져올 수 있습니다.
명시적으로 정의된 값을 사용하지 않고 데이터베이스에서 데이터를 가져오는 온라인 서비스의 경우와 같이 JSONPlaceholder에서 정보를 검색하는 것은 실제 상황을 모방한 것입니다.
Vue 프로젝트 내의 API(애플리케이션 프로그래밍 인터페이스)에서 정보를 검색하려면 “src” 디렉터리 내에 새 폴더를 생성하고 “api”로 명명합니다. 이 새로 생성된 저장소 내에서 새 JavaScript 문서를 시작하고 그 안에 후속 코딩 지침을 삽입합니다:
//getComments.js
import axios from "axios";
async function getComments(max, omit) {
try {
const comments = await axios.get(
`https://jsonplaceholder.typicode.com/comments?_limit=${max}&_start=${omit}`
);
return comments.data.map((comment) => comment.body);
} catch (error) {
console.error(error);
}
}
export default getComments;
제공된 코드 스니펫에는 지정된 URL ”
더 자세히 설명하기 위해 앞서 언급 한 코드 블록은 가져 오기 문을 통해 axios 라이브러리를 도입하여 시작됩니다. 그 후, “최대” 및 “생략”으로 표시된 두 개의 매개 변수를 사용하여 “getComments”라는 제목의 함수가 선언됩니다.
`getComments` 함수는 비동기 `axios.get()` 메서드를 통합하여 `max` 및 `omit` 변수에 의해 정의된 쿼리 매개변수가 포함된 지정된 URL로 HTTP GET 요청을 보냅니다. 이러한 매개변수는 백틱()으로 표시된 템플릿 리터럴을 활용하여 URL에 동적으로 삽입되므로 URL 내에서 변수 데이터를 원활하게 통합할 수 있습니다.
제공된 코드를 실행하면 지정된 API 엔드포인트에서 검색된 주석을 통해 매핑하여 업데이트된 배열이 생성됩니다. 이 새로 구성된 컬렉션은 사용된 방법을 통해 얻은 주석으로만 구성됩니다.
오류 발생 시 코드 스니펫은 검토 및 분석을 위해 콘솔에 문제를 기록합니다. 그 후 코드 스니펫은 프로그램의 다양한 섹션에서 활용될 함수를 내보냅니다.
무한 스크롤 컴포넌트 만들기
플레이스홀더 정보를 논리적으로 검색하는 데 능숙해졌다면 이제 시뮬레이션된 데이터를 표시하고 무한 스크롤이 가능한 기능을 구현하는 새로운 요소를 개발할 수 있습니다.
무한 스크롤 기능을 구현하기 위해 “src/components” 디렉터리 내에 “InfiniteScroll.vue”라는 새 Vue 컴포넌트를 만들 수 있습니다. 이 컴포넌트의 코드에는 스크롤 이벤트와 사용자 상호 작용을 처리하고 필요에 따라 추가 콘텐츠를 동적으로 로드하는 데 필요한 로직이 포함되어야 합니다. 다음은 이를 수행하는 방법을 보여주는 몇 가지 샘플 코드입니다: “`php