1. 프로그래머스 Js
Lv1. 평균 구하기
한 줄로 바로 풀린 문제..;;
return arr.reduce((a,b) => a+b, 0)/arr.length
다른 풀이
var sum = 0;
for(var i=0; i<array.length; i++)
sum += array[i];
return sum/array.length;
2. 프로젝트 기능 개발_2
✅ pagenation 구현하기
✅ api 할당량 조절하기
-> useEffect를 이용, 의존성 배열로 해당 조건일 때만 함수가 실행되도록 함
pagenation
prev, next page 버튼을 만들어 버튼을 눌렀을 때 api에 prev, next token을 전달해서 데이터 가져오기
버튼으로 nextPageToken을 넘겨줘야 하는데 nextPageToken은 axios에서 받아온 data의 상위에 존재.
api.js에서는 res.data까지 잘 출력이 되는데 MainPage.jsx에서 useQuery로 받아온 data를 그대로 출력하니 undefiend가 뜬다.
구현 방법
api.js - data까지만 불러오기
.get(`${BASE_URL}&pageToken=${pageToken}
&q=클론 코딩&key=${API_KEY}`).then((res) => res.data)
Main.jsx
prev, next 버튼
pageToken&&
이 조건은 수정해야 하는 부분
data에서 items로 한 번 더 들어가야함
페이지 이동 어떻게 할 건지
카테고리 별 페이지 이동 및 검색했을 때도 페이지 이동이 있어야 함.
검색 기능
전체리스트 기준으로만 검색이 가능한 상태. 다른 카테고리를 누르고 검색어를 입력해도 해당 카테고리 내에서가 아닌 전체리스트 내에서만 검색이 된다.
이건 검색어를 입력했을 때 리스트 기준을 전체리스트로 잡아놔서 그렇지만 카테고리 별로 기준을 잡아야 할지..?
pageNation으로 다음 페이지로 이동했을 땐 해당 패에지 내에서만 검색이 된다.
Pagenation을 활용해 RN때처럼 스크롤이 화면 아래 어느 지점에 도달했을 때 nextPage의 데이터를 불러와서 현재 리스트 아래에 붙이기
Intersection Observer API
const observer = new IntersectionObserver(callback[, options]);
<div ref={setObservationTarget}></div>
기존 리스트를 유지한채로 아래에 nextPageToken으로 불러온 리스트를 붙이기