일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- next #middleware
- 프로그래머스
- vscode
- interactive_timeout
- max_allowed_packet
- 부족한 금액 계산하기
- 자연수 뒤집어 배열로 만들기
- react
- reacts3
- 리액트코드정렬
- 제일 작은 수 제거하기
- EC2
- 코드정렬
- AWS
- axios
- 리액트
- dotenv
- 자동완성방지
- Node
- 코딩테스트
- prettier
- utf8mb4
- 커밋 한번에
- express
- .env
- 프리티어
- s3확장자
- useReducer
- elasticIP
- MySQL
- Today
- Total
Sungtt
페이지네이션 뇌피셜 본문
페이지네이션을 구현하는 방식 두가지
1. OnlyFront
서버에서 미리 모든 데이터를 받아와서 프론트에서 잘라내 렌더링하는 방식
2. Hybrid
프론트에서 필요한 데이터를 서버에 그때그때 요청하여 받아와 렌더링하는 방식
1번은 제쳐두고
2번을 생각해보자
총 51개의 리스트가 있다고 가정하였을 때
A - 리스트를 나눠 몇개의 페이지가 필요한지 나타내는 배열상태 [ 1,2,3,4,5,6 ]
B - 페이지 내용을 나타내는 배열상태(10개씩) [ a,b,c,d,e,f,g,h,i,j,k ]
C - 현재 페이지를 나나태는 배열상태 [ 1 ]
각 상태값을 할당과 렌더링 하려면?
A 할당 - 서버에서 데이터의 length //51 을 받는다. 51을 한 페이지에 보여줄 리스트갯수만큼 나눈 숫자를 반올림하여
6이라는 숫자를 획득 후 반복문으로 A배열에 0부터 5까지의 숫자가 들어간 배열을 할당해준다.
A 렌더링 - 페이지를 나타내는 버튼을 만들고 A배열을 map메서드로 돌려 i.pageNum + 1로 출력해준다.
B 할당 - useEffect로 현재 페이지를 나타내는 C(1)값을 먼저 서버에 요청하여 서버는 1에 맞는 0~9까지의 게시글을 응답해준다. 그 후 값을 할당해준다.
B 렌더링 - B배열을 map메서드로 돌려 출력해준다.
C 할당 - useState 기본값을 1로 사용하여 초기값을 할당해준다.
2페이지버튼을 눌렀을 때 setState로 해당 숫자를 할당해주고 2를 서버에 요청한다.
C 렌더링 - A배열로 만들어진 버튼에 C값을 시각적으로 강조해주어야한다. (3페이지면 3을 강조)
이벤트위임을 통해 active 를 토글시켜주자. 모든 A버튼의 active를 제거 후 currentTarget에 active 추가하기
'프로젝트 > 개인 프로젝트 [공책게임]' 카테고리의 다른 글
aws 배포과정 (0) | 2022.09.19 |
---|---|
던전을 올라가는 목적성을.. (0) | 2022.08.21 |
랭킹페이지 새로고침 시 내 순위가 안나오는 오류 (0) | 2022.08.19 |
랭킹 페이지네이션 UI 짧은 고찰.. (0) | 2022.08.18 |
리워드지급 switch문 탈출기 (0) | 2022.08.02 |