본문 바로가기

Javascript

자바스크립트 페이지네이션 (리액트, 부트스트랩)

반응형

jsx 코드

      <Pagination>
        <Pagination.First onClick={pageFirst} />
        <Pagination.Prev onClick={pagePrev} />
        {pageList.map((item, index) => {
          return (
            <Pagination.Item key={index} onClick={pageSelect}>
              {item}
            </Pagination.Item>
          );
        })}
        <Pagination.Next onClick={pageNext} />
        <Pagination.Last onClick={pageLast} />
      </Pagination>

 

 

자바스크립트 코드 (리액트)

  const pagePrev = () => {
    if (nowPageNum > 1) {
      history.push(`/${divClassName}/page=${nowPageNum - 1}`);
    } else {
      history.push(`/${divClassName}/page=1`);
    }
  };

  const pageNext = () => {
    history.push(`/${divClassName}/page=${nowPageNum + 1}`);
  };

  const pageFirst = () => {
    if (nowPageNum <= 10) {
      history.push(`/${divClassName}/page=1`);
    } else {
      history.push(`/${divClassName}/page=${nowPageNum - 10}`);
    }
  };

  const pageLast = () => {
    history.push(`/${divClassName}/page=${nowPageNum + 10}`);
  };

  const pageSelect = (event) => {
    console.log(event.target.textContent);

    const {
      target: { textContent },
    } = event;

    history.push(`/${divClassName}/page=${textContent}`);
  };

  let startPage, endPage;
  let pageList = [];

  const getPageList = () => {
    const temp = nowPageNum / 10 + 1;
    startPage = Math.floor(temp);

    console.log("startPage", startPage);

    endPage = startPage * 10 + 1;

    if (nowPageNum < 10) {
      for (let index = 1; index <= 10; index++) {
        pageList[index] = index;
      }
    } else {
      for (startPage = endPage - 11; startPage < endPage; startPage++) {
        pageList[startPage] = startPage;
      }
    }
  };

  getPageList();

 

결과물

 

 

반응형

'Javascript' 카테고리의 다른 글

Adapter Pattern  (0) 2021.10.20
모던 자바스크립트 튜토리얼  (0) 2020.12.09
자바스크립트 pc 모바일 감지  (0) 2020.11.27
html 태그의 부모태그 안의 텍스트 찾기  (0) 2020.11.27
자바스크립트 기본 모음  (0) 2020.11.03