๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Couch Coding

Couch Coding ( ์นด์šฐ์น˜ ์ฝ”๋”ฉ ) - AntDesign ์ด์šฉํ•˜์—ฌ ํŽ˜์ด์ง€๋„ค์ด์…˜ ๊ตฌํ˜„ํ•˜๊ธฐ

Ant Design์€ ์•Œ๋ฆฌ๋ฐ”๋ฐ” ๊ทธ๋ฃน์—์„œ ๊ฐœ๋ฐœํ•œ UI ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค .

Button, Slide, Input, Form ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ  ์ œ๊ณตํ•œ๋‹ค

 

Ant Design์„ ์ด์šฉํ•˜์—ฌ ์†์‰ฝ๊ฒŒ ์Šฌ๋ผ์ด๋“œ์™€ ํŽ˜์ด์ง€๋„ค์ด์…˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž !

 

 ๐Ÿ“„ Pagination

ํŽ˜์ด์ง€๋„ค์ด์…˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž

 

 

 

์œ„ ํŽ˜์ด์ง€๋„ค์ด์…˜ Example์„ ์‚ฌ์šฉํ•ด๋ณด์ž! 

 

// Pagination

import { Pagination } from 'antd';

const [currentPage, setCurrentPage] = useState(); // ํ˜„์žฌ ํŽ˜์ด์ง€ State

// Ant Design์˜ Pagination ์ปดํฌ๋„ŒํŠธ
<Pagination
  current={currentPage}  // ํ˜„์žฌ ํด๋ฆญํ•œ ํŽ˜์ด์ง€
  total={totalElement}   // ๋ฐ์ดํ„ฐ์˜ ์ด ๊ฐœ์ˆ˜
  pageSize={5}           // ํŽ˜์ด์ง€ ๋‹น ๋ณด์—ฌ์ค„ ๊ฐœ์ˆ˜
  onChange={(value) => {   
  changePage(value);     // ํŽ˜์ด์ง€์˜ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด changePage ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ
  }}
/>

// ํŽ˜์ด์ง€ ๋ณ€๊ฒฝ
const changePage = (page) => {
  setCurrentPage(page); // onChange ํ•จ์ˆ˜์—์„œ ๋ณด๋‚ธ value ํŒŒ๋ผ๋ฏธํ„ฐ
  getData(page);  // ๋ณ€๊ฒฝ๋œ page๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญ
};

 

Pagination ์ปดํฌ๋„ŒํŠธ์— ํ•„์š”ํ•œ API๋“ค์„ ๋“ฑ๋กํ•˜์ž 

ํŽ˜์ด์ง€๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ ์ˆ˜ํ–‰๋˜๋Š” onChange ์ด๋ฒคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์— ์š”์ฒญํ•˜๋ฉด ๋˜๊ฒ ๋‹ค !

 

 

์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ํŽ˜์ด์ง€๋„ค์ด์…˜์˜ ๊ตฌํ˜„์ด ์™„๋ฃŒ๊ฐ€ ๋œ ๊ฒƒ์ด๋‹ค. 

๋„ˆ๋ฌด ์‰ฝ๋‹ค ! 

 

โž• Styled-Components ๋กœ Ant Design ์ปค์Šคํ…€ ๋””์ž์ธ ํ•˜๋Š” ๋ฐฉ๋ฒ• 

 

์œ„์˜ ์ฝ”๋“œ์—์„œ ๋ณ€๊ฒฝ์ด ์•ฝ๊ฐ„ ํ•„์š”ํ•˜๋‹ค 

 

<PaginationContent
  current={currentPage + 1}
  total={totalElement}
  pageSize={5}
  onChange={(value) => {
  changePage(value);
 }}
/>

 

์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„์„ Styled-Components ์—์„œ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ธฐ์กด์˜ Pagination์—์„œ ๋ณ€๊ฒฝํ•ด์ค€๋‹ค

 

 

Styled-Components ์ฝ”๋“œ์— ์•„๋ž˜ ์ฒ˜๋Ÿผ ์„ ์–ธํ•ด์ค€๋‹ค ์˜ˆ) styled(Ant Design ์ปดํฌ๋„ŒํŠธ)

 

const PaginationContent = styled(Pagination)`
  .ant-select-selector {
    display: none;
  }
`;

 

์ด๋ ‡๊ฒŒ ํ•ด์ฃผ๋ฉด Ant Design ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ปค์Šคํ…€ ํ•  ์ˆ˜ ์žˆ๋‹ค. 

.ant-select-selector์™€ ์ฒ˜๋Ÿผ ํด๋ž˜์Šค๋ช…์„ ํ†ตํ•ด ๋””์ž์ธ์„ ๋ณ€๊ฒฝํ•œ ์ด์œ ๋Š” Pagination ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋ง ํ–ˆ์„ ๊ฒฝ์šฐ์— 

๊ฐœ๋ฐœ์ž ๋„๊ตฌ Element ํƒญ์—์„œ ํ™•์ธํ•ด๋ณด๋ฉด Pagination ํ•˜์œ„์— ๋งŽ์€ ํƒœ๊ทธ๋“ค์ด ์กด์žฌ ํ•˜๋Š”๋ฐ ๊ทธ ํƒœ๊ทธ๋“ค์˜ ๋””์ž์ธ์„ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 

๊ฐ ํƒœ๊ทธ์˜ ํด๋ž˜์Šค๋ช…์„ ํ†ตํ•ด์„œ ํ•˜๋ฉด ๋œ๋‹ค !

 

 

๐Ÿ’ก ์จ๋ณด๊ณ  ๋А๋‚€ ์•คํŠธ๋””์ž์ธ์˜ ์žฅ๋‹จ์ 

์žฅ์ 

๊ต‰์žฅํžˆ ํŽธ์•ˆํ•œ ๋””์ž์ธ ๋ ˆ์ด์•„์›ƒ

๋ณดํ†ต React๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค๋ฉด ๋งˆํฌ์—…์„ ํ•˜๊ณ  Styled-Components ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋””์ž์ธ์„ ํ•˜๊ณ .. 

ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ ๋””์ž์ธ์„ ์œ„ํ•ด ํ•ด์•ผํ•  ์ผ์ด ์ƒ๋‹นํžˆ ๋งŽ๋‹ค. ํ•˜์ง€๋งŒ ์•คํŠธ๋””์ž์ธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋””์ž์ธ ๋œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ๊ณตํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์—

ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฐ ์ปดํฌ๋„ŒํŠธ๋งˆ๋‹ค ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋Š” API, Methods๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŽธํ•˜๊ฒŒ ์ด๋ฒคํŠธ๋ฅผ ๋“ฑ๋กํ•˜๊ฑฐ๋‚˜ ๊ทธ๋ฆฌ๋“œ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค 

 

๋‹จ์ 

์ปค์Šคํ…€ ๋””์ž์ธ

์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—์„œ Element ํƒญ์—์„œ ํ™•์ธํ•ด๋ณด๋ฉด ์—ฌ๋Ÿฌ ํƒœ๊ทธ๋“ค์ด ์กด์žฌํ•ด์žˆ๋‹ค. 

์ด ํƒœ๊ทธ๋“ค์˜ ๋””์ž์ธ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์ •๋ง ์‰ฝ์ง€์•Š๋‹ค.. ์ผ์ผ์ด ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์—ด์–ด์„œ ์ฐพ์•„ ๋ณด๋ฉฐ ๋””์ž์ธ ๋ณ€๊ฒฝ์„ ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— 

๋””์ž์ธ์„ ์ปค์Šคํ…€ํ•˜๊ธฐ ๊ต‰์žฅํžˆ ์• ๋ฅผ ๋จน์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

 

 


 

์•คํŠธ๋””์ž์ธ์˜ ๋‹จ์ ์€ ์œ„์— ์ ์–ด๋†“์€ ๊ฒƒ ๋ง๊ณ ๋„ ๋งŽ์ด ์กด์žฌํ•˜์ง€๋งŒ ์žฅ์ ์ด ๋งค์šฐ ์ข‹๊ฒŒ ๋‹ค๊ฐ€์™”๊ธฐ ๋•Œ๋ฌธ์— ์•„์ฃผ ๋งŒ์กฑํ•˜๋ฉด์„œ ์‚ฌ์šฉํ–ˆ๋‹ค.

๋‚˜์ค‘์— ํ˜ผ์ž ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ํ•  ๋•Œ๋„ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. 

 

 

 

- Reperence

 

https://ant.design/components/pagination/

 

Pagination - Ant Design

onChangeCalled when the page number or pageSize is changed, and it takes the resulting page number and pageSize as its argumentsfunction(page, pageSize)-

ant.design