Close Menu
TechTimes VietnamTechTimes Vietnam
  • Tin tức
    • Máy tính
    • Di động
    • Khoa học
    • Ứng dụng
    • Bảo mật
    • Điện tử tiêu dùng
    • Ô tô – Xe máy
    • Doanh nghiệp
      • PR Newswire
      • Media Outreach
      • GlobeNewswire
  • Đánh giá
  • Đời sống số
  • Thủ thuật
    • Bảo mật
    • Di động
    • Ứng dụng
    • Máy tính
    • Điện tử tiêu dùng
    • Máy ảnh
  • Khoa học

Đăng ký bản tin

Cập nhật thông tin, đánh giá, bình luận... trong hộp thư email.

Facebook X (Twitter) Instagram YouTube LinkedIn TikTok RSS
Facebook X (Twitter) TikTok LinkedIn RSS
TechTimes VietnamTechTimes Vietnam
  • Tin tức
    1. Máy tính
    2. Di động
    3. Khoa học
    4. Ứng dụng
    5. Bảo mật
    6. Điện tử tiêu dùng
    7. Ô tô – Xe máy
    8. Doanh nghiệp
    9. PR Newswire
    10. Media Outreach
    11. GlobeNewswire
    12. Xem tất cả

    Acer triển khai chương trình Back To School 2026

    08/07/2026

    LG ra mắt dòng laptop LG gram AI 2026 tại Việt Nam, mỏng nhẹ hơn và tích hợp AI toàn diện

    03/07/2026

    ASUS ra mắt ExpertBook Ultra tại Việt Nam, laptop Copilot+ PC cao cấp hướng đến doanh nghiệp

    26/06/2026

    COLORFUL ra mắt iGame B850I MINI OC V14: Bo mạch chủ Mini-ITX cho hệ thống AMD Ryzen cao cấp

    25/06/2026

    Rakuten Viber bắt tay Vietnamobile, mang Viber Plus và Viber Dating đến người dùng Việt

    16/07/2026

    Rò rỉ: Chuỗi cung ứng Apple đã sẵn sàng cho thiết kế kính hoàn toàn mới của iPhone 20

    15/07/2026

    iOS 27 Public Beta chính thức được phát hành: 10 tính năng mới được nâng cấp đáng để trải nghiệm

    14/07/2026

    Zalo bổ sung tính năng trí tuệ nhân tạo AI mới, mở rộng dịch thuật và tăng cường đồng bộ dữ liệu

    13/07/2026

    Xiaomi mở mã nguồn mô hình AI Robotics-U0, tăng tốc tạo dữ liệu huấn luyện robot lên hơn 80 lần

    17/07/2026

    Phát hiện thiên hà ‘ẩn mình’ có thể là nguồn phát neutrino năng lượng cao, hé lộ mới về hố đen siêu lớn

    21/06/2026

    Nghiên cứu mới từ Virginia Tech phát hiện tế bào ung thư kích thước nhỏ hơn có thể nguy hiểm hơn

    26/05/2026

    Hoạt động khám phá không gian đang thúc đẩy công nghệ và đổi mới khoa học như thế nào?

    19/05/2026

    Rakuten Viber bắt tay Vietnamobile, mang Viber Plus và Viber Dating đến người dùng Việt

    16/07/2026

    Apple điều chỉnh giá AppleCare+ cho Mac và iPad mới, tăng nhẹ phí đăng ký

    16/07/2026

    Google: Người dùng Gemini tại Đông Nam Á tăng gấp đôi, Việt Nam dẫn đầu về sử dụng AI trong học tập

    14/07/2026

    iOS 27 Public Beta chính thức được phát hành: 10 tính năng mới được nâng cấp đáng để trải nghiệm

    14/07/2026

    Kaspersky: Tấn công giả mạo công cụ AI nhắm vào doanh nghiệp nhỏ tăng mạnh trong năm 2026

    02/07/2026

    Kaspersky: Phụ huynh càng thường xuyên đăng ảnh con lên mạng xã hội càng ít chú trọng đến bảo vệ quyền riêng tư

    05/06/2026

    COMPUTEX 2026: Khám phá loạt giải pháp dữ liệu, AI và điện toán riêng tư mới của Synology

    03/06/2026

    Những rủi ro tiềm ẩn khó lường khi doanh nghiệp sử dụng phần mềm lậu, không có bản quyền

    01/06/2026

    Samsung ra mắt giải pháp giặt sấy công nghiệp tại Việt Nam, hướng đến doanh nghiệp thương mại

    17/07/2026

    LG cùng WW Việt Nam ra mắt Bee Laundry, mô hình cửa hàng giặt sấy thông minh tại Hà Nội

    09/07/2026

    ShinFlow ra mắt thương hiệu tại Đông Nam Á, giới thiệu điều hòa tích hợp trí tuệ nhân tạo AI thế hệ mới

    06/07/2026

    Panasonic ra mắt tủ lạnh 4 cánh âm tường 2026, nâng cấp thiết kế và công nghệ bảo quản thực phẩm

    30/06/2026

    VinFast hợp tác TÜV Rheinland nâng cao năng lực thử nghiệm ô tô theo chuẩn quốc tế

    17/07/2026

    S&S Automotive triển khai dịch vụ hậu mãi chính hãng Aston Martin tại thị trường Việt Nam

    13/07/2026

    YADEA ra mắt xe máy điện Omee, hợp tác Be Group thúc đẩy giao thông xanh tại Việt Nam

    26/06/2026

    YADEA triển khai chương trình đổi xe xăng lấy xe điện, ưu đãi đến hết tháng 7/2026

    23/06/2026

    COMPUTEX 2026 chính thức mở màn, chủ đề ‘AI Together’, quy tụ 1.500 doanh nghiệp công nghệ toàn cầu

    02/06/2026

    NIC Việt Nam góp mặt tại GITEX ASIA 2025 – Kết nối hệ sinh thái công nghệ châu Á

    17/04/2025

    VinBrain mở rộng hợp tác với Medlatec và Vikomed

    18/09/2024

    Công bố sự kiện xúc tiến giao thương MEGA US EXPO 2024

    11/07/2024

    Farizon khai trương Trung tâm Phân phối Phụ tùng Toàn cầu, tăng cường hỗ trợ hậu mãi quốc tế

    18/07/2026

    3TREES lập kỷ lục Guinness thế giới: Showroom sơn phủ lớn nhất — Khai trương Trung tâm Trải nghiệm Công nghệ Nhà ở Chất lượng 3TREES

    17/07/2026

    Huawei ra mắt Chiến lược tạo lưới mới nhất cho hệ thống điện tương lai tại The Smarter E 2026

    16/07/2026

    Tìm sự bình yên giữa bầu không khí cuồng nhiệt: Hisense mang đến trải nghiệm FIFA World Cup 2026™ hòa nhập hơn cho người hâm mộ tại cả 16 thành phố đăng cai

    16/07/2026

    FEV hợp tác với Microsoft để tích hợp các khả năng AI tạo sinh cho các ứng dụng trên ô tô

    09/07/2026

    SNP giới thiệu giải pháp AI Kyano Lorna để tăng tốc quá trình chuyển đổi dữ liệu doanh nghiệp

    09/07/2026

    SNP hợp tác chiến lược với Palantir để đẩy nhanh quá trình chuyển đổi SAP an toàn

    09/07/2026

    Từ năm 2021 đến nay, doanh thu định kỳ hàng năm của Keeper Security tăng hơn 3 lần

    09/07/2026

    NVIDIA mở rộng hệ sinh thái AI robot tại Nhật Bản, hơn 20 doanh nghiệp gia nhập Cosmos Coalition

    18/07/2026

    Farizon khai trương Trung tâm Phân phối Phụ tùng Toàn cầu, tăng cường hỗ trợ hậu mãi quốc tế

    18/07/2026

    Uplinq Named to Newsweek’s America’s Greatest Startup Workplaces 2026

    18/07/2026

    Uplinq Named to Newsweek’s America’s Greatest Startup Workplaces 2026

    17/07/2026

    NVIDIA mở rộng hệ sinh thái AI robot tại Nhật Bản, hơn 20 doanh nghiệp gia nhập Cosmos Coalition

    18/07/2026

    Samsung ra mắt giải pháp giặt sấy công nghiệp tại Việt Nam, hướng đến doanh nghiệp thương mại

    17/07/2026

    VinFast hợp tác TÜV Rheinland nâng cao năng lực thử nghiệm ô tô theo chuẩn quốc tế

    17/07/2026

    Microchip ra mắt thiết bị cấp nguồn PoE công nghiệp PD-9601GCI, hỗ trợ công suất tới 90W

    17/07/2026
  • Đánh giá

    Đánh giá Wacom MovinkPad Pro 14: Nâng tầm định nghĩa “Trạm sáng tạo di động chuyên nghiệp”

    17/07/2026

    Đánh giá OPPO Reno16 5G: AI và camera cùng giúp việc sáng tạo nội dung trở nên đơn giản hơn

    02/07/2026
    9.7

    Đánh giá Galaxy S26 Ultra sau hơn 3 tháng: AI thực sự hữu ích và quyền riêng tư trở thành nâng cấp đáng giá

    26/06/2026

    COMPUTEX 2026: Predator Helios 18 AI và Nitro 16 – Acer mang sức mạnh AI PC và gaming lên một tầm cao mới

    03/06/2026

    COMPUTEX 2026: Trải nghiệm nhanh Acer Swift Air 14 – mỏng nhẹ, thực dụng và đủ chinh phục số đông

    03/06/2026
  • Đời sống số

    NVIDIA mở rộng hệ sinh thái AI robot tại Nhật Bản, hơn 20 doanh nghiệp gia nhập Cosmos Coalition

    18/07/2026

    VinFast hợp tác TÜV Rheinland nâng cao năng lực thử nghiệm ô tô theo chuẩn quốc tế

    17/07/2026

    Microchip ra mắt thiết bị cấp nguồn PoE công nghiệp PD-9601GCI, hỗ trợ công suất tới 90W

    17/07/2026

    Đánh giá Wacom MovinkPad Pro 14: Nâng tầm định nghĩa “Trạm sáng tạo di động chuyên nghiệp”

    17/07/2026

    Xiaomi mở mã nguồn mô hình AI Robotics-U0, tăng tốc tạo dữ liệu huấn luyện robot lên hơn 80 lần

    17/07/2026
  • Thủ thuật
    1. Bảo mật
    2. Di động
    3. Ứng dụng
    4. Máy tính
    5. Điện tử tiêu dùng
    6. Máy ảnh
    7. Xem tất cả

    Kaspersky: Tấn công giả mạo công cụ AI nhắm vào doanh nghiệp nhỏ tăng mạnh trong năm 2026

    02/07/2026

    Kaspersky: Phụ huynh càng thường xuyên đăng ảnh con lên mạng xã hội càng ít chú trọng đến bảo vệ quyền riêng tư

    05/06/2026

    COMPUTEX 2026: Khám phá loạt giải pháp dữ liệu, AI và điện toán riêng tư mới của Synology

    03/06/2026

    Những rủi ro tiềm ẩn khó lường khi doanh nghiệp sử dụng phần mềm lậu, không có bản quyền

    01/06/2026

    Rakuten Viber bắt tay Vietnamobile, mang Viber Plus và Viber Dating đến người dùng Việt

    16/07/2026

    Rò rỉ: Chuỗi cung ứng Apple đã sẵn sàng cho thiết kế kính hoàn toàn mới của iPhone 20

    15/07/2026

    iOS 27 Public Beta chính thức được phát hành: 10 tính năng mới được nâng cấp đáng để trải nghiệm

    14/07/2026

    Zalo bổ sung tính năng trí tuệ nhân tạo AI mới, mở rộng dịch thuật và tăng cường đồng bộ dữ liệu

    13/07/2026

    Rakuten Viber bắt tay Vietnamobile, mang Viber Plus và Viber Dating đến người dùng Việt

    16/07/2026

    Apple điều chỉnh giá AppleCare+ cho Mac và iPad mới, tăng nhẹ phí đăng ký

    16/07/2026

    Google: Người dùng Gemini tại Đông Nam Á tăng gấp đôi, Việt Nam dẫn đầu về sử dụng AI trong học tập

    14/07/2026

    iOS 27 Public Beta chính thức được phát hành: 10 tính năng mới được nâng cấp đáng để trải nghiệm

    14/07/2026

    Acer triển khai chương trình Back To School 2026

    08/07/2026

    LG ra mắt dòng laptop LG gram AI 2026 tại Việt Nam, mỏng nhẹ hơn và tích hợp AI toàn diện

    03/07/2026

    ASUS ra mắt ExpertBook Ultra tại Việt Nam, laptop Copilot+ PC cao cấp hướng đến doanh nghiệp

    26/06/2026

    COLORFUL ra mắt iGame B850I MINI OC V14: Bo mạch chủ Mini-ITX cho hệ thống AMD Ryzen cao cấp

    25/06/2026

    Samsung ra mắt giải pháp giặt sấy công nghiệp tại Việt Nam, hướng đến doanh nghiệp thương mại

    17/07/2026

    LG cùng WW Việt Nam ra mắt Bee Laundry, mô hình cửa hàng giặt sấy thông minh tại Hà Nội

    09/07/2026

    ShinFlow ra mắt thương hiệu tại Đông Nam Á, giới thiệu điều hòa tích hợp trí tuệ nhân tạo AI thế hệ mới

    06/07/2026

    Panasonic ra mắt tủ lạnh 4 cánh âm tường 2026, nâng cấp thiết kế và công nghệ bảo quản thực phẩm

    30/06/2026

    Sony RX10 V ra mắt: Camera zoom siêu xa nhưng mức giá lên đến 2.300 USD gây nhiều tranh cãi

    10/07/2026

    Sony ALPHA 7R VI có giá 114 triệu đồng: Máy ảnh full-frame 67MP kết hợp tốc độ và độ phân giải vượt trội

    15/05/2026

    Canon ra mắt EOS R6 V giá 56,99 triệu đồng và ống kính Power Zoom RF20-50mm F4 L IS USM PZ tại Việt Nam

    14/05/2026

    Sony giới thiệu Alpha 7 V: Định nghĩa lại chuẩn máy ảnh Hybrid Full-frame với sức mạnh AI thế hệ mới

    09/12/2025

    7 mẹo hay giúp người dùng Android sáng tạo nội dung nhanh hơn với ‘siêu phẩm’ OPPO Reno16 5G

    13/07/2026

    Những lưu ý khi mua TV xem World Cup 2026: Đừng để những cái tên công nghệ làm bạn ‘việt vị’

    14/06/2026

    Corsair iCUE LINK 3500X RGB & NAUTILUS 360 RS ARGB White: Combo build PC trắng đẹp, mát và dễ chơi

    30/05/2026

    Samsung mở Quick Share kết nối iPhone trên dòng Galaxy S26, phá vỡ rào cản chia sẻ file

    23/03/2026
  • Khoa học
TechTimes VietnamTechTimes Vietnam
Cách triển khai phân trang trong React bằng React Hook

Cách triển khai phân trang trong React bằng React Hook

23/07/2023Media Outreach Newswire9 phút để đọc

Các ứng dụng web quản lý một lượng lớn dữ liệu. Chẳng hạn, các ứng dụng thương mại điện tử hiển thị hàng tỷ dữ liệu theo cách vừa có tổ chức vừa hấp dẫn về mặt hình ảnh. Về cơ bản, dữ liệu cần được trình bày theo cách người dùng dễ hiểu và điều hướng.

HOT
⚡ Tin công nghệ nóng mỗi ngày tại TechWire.vn
Xem ngay →


Tuy nhiên, hiển thị tất cả dữ liệu trên một trang có thể dẫn đến các vấn đề về hiệu suất, thời gian tải chậm hơn và trải nghiệm người dùng kém. Vì lý do này, việc triển khai logic phân trang có thể giảm bớt đáng kể những vấn đề này.

Trong React, bạn có thể chọn sử dụng các thành phần dựng sẵn được cung cấp bởi các thư viện phân trang, ngoài ra, bạn có thể xây dựng một hệ thống phân trang tùy chỉnh bằng cách sử dụng móc React.


Có hai cách để triển khai phân trang trong các ứng dụng: phân trang phía máy khách và phía máy chủ. Tuy nhiên, bất kể định dạng bạn chọn là gì, khái niệm cơ bản vẫn giống nhau. Phân trang phía máy khách liên quan đến việc xử lý logic phân trang ở phía máy khách, bên trong trình duyệt của người dùng.

Mở sổ ghi chép với các trang trống

Bạn có thể triển khai phân trang phía máy khách bằng nhiều kỹ thuật khác nhau. Những kỹ thuật này bao gồm:

  1. Phân trang dựa trên trang: Phương pháp này liên quan đến việc chia dữ liệu thành các phần hoặc trang có kích thước cố định, thường hiển thị một số mục nhất định trên mỗi trang. Người dùng có thể điều hướng qua các trang bằng các nút hoặc liên kết điều hướng, được gắn nhãn bằng số trang hoặc các nút trước đó và tiếp theo. Đây là một triển khai phổ biến với các công cụ tìm kiếm và ứng dụng thương mại điện tử.
  2. cuộn vô hạn: Phương pháp này liên quan đến việc tải động và hiển thị dữ liệu mới khi người dùng cuộn xuống trang, tạo ra trải nghiệm duyệt liên tục và liền mạch. Kỹ thuật này đặc biệt hữu ích khi xử lý các bộ dữ liệu lớn liên tục mở rộng, chẳng hạn như nguồn cấp dữ liệu mạng xã hội.

Để bắt đầu, hãy tạo một dự án React. Bạn có thể sử dụng lệnh JavaScript tạo ứng dụng phản ứng để thiết lập ứng dụng React cơ bản cục bộ hoặc sử dụng Vite để dàn dựng một dự án React trên máy của bạn.

Hướng dẫn này đã sử dụng Vite, bạn có thể tìm thấy mã của dự án này trong phần này kho lưu trữ GitHub.

Sau khi thiết lập dự án React của bạn, hãy tiến hành triển khai phân trang dựa trên trang bằng cách sử dụng React Hook.

Định cấu hình Bộ dữ liệu

Lý tưởng nhất là bạn thường tìm nạp và hiển thị dữ liệu từ cơ sở dữ liệu. Tuy nhiên, đối với hướng dẫn này, bạn sẽ lấy dữ liệu từ một hình nộm JSONPlaceholder API thay vì.

bên trong src thư mục, tạo mới thành phần/phân trang tệp và thêm đoạn mã sau.

  1. Tạo một thành phần chức năng React và xác định các trạng thái sau.
     import React, { useEffect, useState } from "react";
    import "./style.component.css";

    function Pagination() {
      const [data, setData] = useState([]);

      const [currentPage, setcurrentPage] = useState(1);
      const [itemsPerPage, setitemsPerPage] = useState(5);

      const [pageNumberLimit, setpageNumberLimit] = useState(5);
      const [maxPageNumberLimit, setmaxPageNumberLimit] = useState(5);
      const [minPageNumberLimit, setminPageNumberLimit] = useState(0);
      return (
        <>
        <h1> Pagination Component</h1> <br />
      
        </>
      );
    }

    export default Pagination;

  2. Triển khai logic để tìm nạp dữ liệu từ API giả. Bên trong phân trang thành phần, thêm vào bên dưới.
      useEffect(() => {
        fetch("https://jsonplaceholder.typicode.com/todos")
          .then((response) => response.json())
          .then((json) => setData(json));
      }, []);

      const displayData = (data) => {
        return (
          <ul>
            {data.length > 0 &&
              data.map((todo, index) => {
                return <li key={index}>{todo.title}</li>;
              })}
          </ul>
        );
      };

    Đoạn mã trên phục vụ hai mục đích chính. Đầu tiên, một khi thành phần được gắn kết, sử dụnghiệu ứng hook kích hoạt để tìm nạp dữ liệu từ điểm cuối API bên ngoài, sau đó được chuyển đổi sang định dạng JSON. Dữ liệu JSON kết quả sau đó được sử dụng để cập nhật dữ liệu biến trạng thái với dữ liệu việc cần làm đã tìm nạp. Thứ hai, các hiển thị dữ liệu sẽ lấy dữ liệu đã tìm nạp làm đối số và hiển thị dữ liệu dưới dạng danh sách việc cần làm không có thứ tự.

  3. Trong phân đoạn trở lại của phân trang thành phần, bao gồm các hiển thị dữ liệu chức năng hiển thị dữ liệu đã tìm nạp trong trình duyệt. Đây là phiên bản cập nhật của mã:
     return (
      <>
       <h1> Pagination Component</h1> <br />
        {displayData(data)}
      </>
    );

    Bằng cách gọi dữ liệu hiển thị (dữ liệu) trong phần tử JSX và chuyển dữ liệu biến trạng thái làm tham số, sau đó hàm sẽ hiển thị dữ liệu được tìm nạp dưới dạng danh sách không có thứ tự trong trình duyệt.

Trong trường hợp cụ thể này, danh sách được hiển thị bao gồm hai trăm việc cần làm. Tuy nhiên, trong các tình huống thực tế, các ứng dụng sẽ quản lý một lượng lớn dữ liệu. Hiển thị tất cả dữ liệu này trên một trang web có thể dẫn đến các vấn đề về hiệu suất, chẳng hạn như thời gian tải chậm và hiệu suất tổng thể của ứng dụng kém.

Để giải quyết vấn đề này, sẽ phù hợp khi kết hợp chức năng phân trang để đảm bảo mỗi trang chứa một số mục giới hạn mà người dùng có thể truy cập riêng bằng cách sử dụng các nút điều hướng.

Cách tiếp cận này cho phép người dùng điều hướng qua dữ liệu theo cách có tổ chức và dễ quản lý hơn, cải thiện hiệu suất tổng thể và trải nghiệm người dùng của ứng dụng.

Để xác định mục việc cần làm nào sẽ hiển thị trên mỗi trang, chúng ta cần triển khai logic cần thiết. Tuy nhiên, trước khi tiếp tục, điều cần thiết là xác định tổng số trang cần thiết dựa trên các mục công việc có sẵn.

Để đạt được điều này, bạn có thể thêm đoạn mã sau vào phân trang thành phần:

  const pages = [];
 for (let i = 1; i <= Math.ceil(data.length / itemsPerPage); i++) {
   pages.push(i);
 }

Đoạn mã trên, lặp qua dữ liệu mảng, tính toán tổng số trang cần thiết bằng cách chia độ dài của dữ liệu mảng theo số mục mong muốn trên mỗi trang—số mục ban đầu trên mỗi trang được đặt thành năm trong itemPerPage tình trạng.

Tuy nhiên, bạn có thể cập nhật số này theo yêu cầu để kiểm tra logic. Cuối cùng, mỗi số trang sau đó được thêm vào trang mảng. Bây giờ, hãy triển khai logic để hiển thị một số mục trên mỗi trang.

 const indexOfLastItem = currentPage * itemsPerPage;
const indexOfFirstItem = indexOfLastItem - itemsPerPage;
const pageItems = data.slice(indexOfFirstItem, indexOfLastItem);

Mã này xác định việc cần làm để hiển thị trên trang trình duyệt dựa trên trang hiện tại Và itemPerPage biến—nó trích xuất các chỉ mục tương ứng cho tập hợp các việc cần làm từ mảng dữ liệu bằng phương pháp lát cắt. Sau đó, các chỉ mục được sử dụng để truy xuất các việc cần làm cụ thể thuộc về trang mong muốn.

Bây giờ, để hiển thị việc cần làm, hãy cập nhật hiển thị dữ liệu chức năng bằng cách thông qua trangMục như một tham số. Đây là phiên bản cập nhật của mã:

 return (
  <>
   <h1> Pagination Component</h1> <br />
    {displayData(pageItems)}
  </>
);

Bằng cách thực hiện bản cập nhật này, hiển thị dữ liệu sẽ hiển thị một số lượng giới hạn các mục việc cần làm một cách thích hợp, phản ánh trang hiện tại.

Hợp lý hóa quyền truy cập và điều hướng trang bằng các nút điều hướng

Để đảm bảo người dùng dễ dàng điều hướng và truy cập nội dung trên các trang khác nhau, bạn cần thêm các nút trước đó và tiếp theo, cũng như các nút chỉ định số trang cụ thể.

Đầu tiên, hãy triển khai logic cho các nút số trang. bên trong phân trang thành phần, hãy thêm mã bên dưới.

   const handleClick = (event) => {
    setcurrentPage(Number(event.target.id));
  };

  const renderPageNumbers = pages.map((number) => {
    if (number < maxPageNumberLimit +1 && number > minPageNumberLimit) {
      return (
        <li
          key={number}
          id={number}
          onClick={handleClick}
          className={currentPage == number ? "active" : null}
        >
          {number}
        </li>
      );
    } else {
      return null;
    }
  });

Các xử lýClick chức năng kích hoạt khi người dùng nhấp vào nút số trang. Hành động này sau đó cập nhật trang hiện tại biến trạng thái với số trang đã chọn.

Các kết xuất số trang biến sử dụng bản đồ phương pháp để lặp đi lặp lại trên trang mảng và tự động tạo các mục danh sách đại diện cho từng số trang. Nó áp dụng logic có điều kiện để xác định số trang nào sẽ hiển thị dựa trên giới hạn của số trang tối đa và tối thiểu đã xác định.

Cuối cùng, thêm mã cho các nút tiếp theo và trước đó.

   const handleNextbtn = () => {
    setcurrentPage(currentPage + 1);
    if (currentPage + 1 > maxPageNumberLimit) {
      setmaxPageNumberLimit(maxPageNumberLimit + pageNumberLimit);
      setminPageNumberLimit(minPageNumberLimit + pageNumberLimit);
    }
  };

  const handlePrevbtn = () => {
    setcurrentPage(currentPage - 1);
    if ((currentPage - 1) % pageNumberLimit == 0) {
      setmaxPageNumberLimit(maxPageNumberLimit - pageNumberLimit);
      setminPageNumberLimit(minPageNumberLimit - pageNumberLimit);
    }
  };

Để hiển thị các nút điều hướng, hãy cập nhật các phần tử JSX như sau:

  return (
    <>
      <h1> Pagination Component</h1> <br />
      {displayData(pageItems)}
      <ul className="pageNumbers">
            <li>
            <button
                onClick={handlePrevbtn}
                disabled={currentPage == pages[0] ? true : false}
            > Previous
            </button>
            </li>
   
            {renderPageNumbers}

            <li>
            <button
                onClick={handleNextbtn}
                disabled={currentPage == pages[pages.length - 1] ? true : false}
            > Next
            </button>
            </li>
      </ul>
    </>
  );

Khi thành phần hiển thị, nó sẽ hiển thị số trang, nút trước và nút tiếp theo cũng như các mục dữ liệu tương ứng cho trang hiện tại.

Lựa chọn giữa Thư viện phân trang và Hệ thống phân trang tùy chỉnh

Khi phải quyết định giữa việc sử dụng các thư viện phân trang hay xây dựng một hệ thống phân trang tùy chỉnh, sự lựa chọn phụ thuộc vào nhiều yếu tố khác nhau. Các thư viện phân trang, chẳng hạn như phản ứng phân trang, cung cấp các thành phần và chức năng dựng sẵn, cho phép triển khai nhanh chóng và đơn giản.

Mặt khác, việc xây dựng một hệ thống phân trang tùy chỉnh bằng cách sử dụng móc React mang lại sự linh hoạt và khả năng kiểm soát tốt hơn đối với logic phân trang và giao diện người dùng. Quyết định cuối cùng sẽ phụ thuộc vào nhu cầu và sở thích cụ thể của bạn.

Nguồn: Tổng hợp – được thực hiện thử nghiệm bằng NLP và trí tuệ nhân tạo, vui lòng nhấn báo lỗi để góp ý

Theo dõi TechTimes trên Google News
Chia sẻ. Copy Link Facebook Twitter Pinterest LinkedIn Tumblr Email WhatsApp
Bài trước8 ứng dụng AI tốt nhất để tải xuống trên điện thoại của bạn
Bài tiếp theo Cách kết nối bàn phím và chuột với Nintendo Switch của bạn: 2 cách

Bài viết liên quan

Apple Raises AppleCare+ Pricing for New Mac and iPad Subscriptions

[COMPUTEX 2026] GTC Taipei 2026: Jensen Huang Unveils NVIDIA’s Vision for the Agentic AI Era

iOS 27 Rumored to Bring Major Camera and Photos App Upgrades

Microsoft Finally Brings Movable Taskbar Back to Windows 11

Largest Brain-Scan Study Links Anxiety Disorders to Lower Choline Levels

NVIDIA Introduces Open “Ising” AI Models to Push Quantum Computing Toward Real-World Applications

TECHTIMES TECH TRENDS LIVE
AI • Quantum Computing • Semiconductor • Future Tech
    © TechTimes.vn | Xu hướng công nghệ
    • Facebook
    • Twitter
    • Instagram
    • YouTube
    • LinkedIn
    • TikTok
    Đánh giá mới
    9.7

    Đánh giá Galaxy S26 Ultra sau hơn 3 tháng: AI thực sự hữu ích và quyền riêng tư trở thành nâng cấp đáng giá

    26/06/2026
    9.5

    Đánh giá TCL QD-Mini LED A400M 65 inch: Màn hình lớn, thiết kế đẹp, chất lượng hiển thị vượt tầm giá

    20/06/2026
    9.0

    Corsair VANGUARD AIR 99 Wireless: Bàn phím gaming cao cấp cho cả chơi game lẫn sáng tạo nội dung

    19/05/2026
    9.7

    Đánh giá OPPO Find X9s: Khi smartphone nhỏ gọn mang tham vọng thay thế máy ảnh chuyên nghiệp

    09/05/2026
    9.5

    Đánh giá realme P4 Power 5G: Pin 10.001 mAh không chỉ là con số, mà là trải nghiệm thay đổi cách dùng smartphone

    09/04/2026
    Được quan tâm nhiều
    Bảo mật

    Video nhạy cảm từ ‘hack’ camera rao bán tràn lan trên mạng Internet

    16/04/2021Gia Nguyên

    Mục tiêu chính của các nhóm tội phạm là hack camera giấu kín tại các…

    Cách lấy lại lịch sử Chat GPT bị mất của bạn

    08/04/2023

    Cách khắc phục lỗi không lưu được file PDF đã sửa

    15/05/2022

    Tải về hình nền wallpaper iPhone 16 và iPhone 16 Pro, Pro Max

    10/09/2024

    Cách cài đặt Ryujinx làm Trình giả lập Nintendo Switch cho PC của bạn

    12/07/2023

    Bên trong ASUS AI Lab tại Đài Loan: Hậu trường của những hệ thống AI quy mô hàng đầu thế giới

    01/06/2026

    Download tải về hình nền wallpaper iPhone 15, 15 Pro và 15 Pro Max

    13/09/2023

    Cách tạo trang bìa trong Google Docs

    21/04/2023

    Cách lưu hình ảnh từ Google Maps

    31/05/2023

    Cách lưu các mẫu và thành phần Canva yêu thích của bạn bằng cách gắn dấu sao cho chúng

    21/06/2023

    COMPUTEX 2026: Sự kiện công nghệ toàn cầu quy tụ “gã khổng lồ” cho kỷ nguyên hợp tác mới

    12/01/2026

    4 cách để nhận giấy phép Microsoft 365 miễn phí: Cách nhận Microsoft 365 mà không cần mua đăng ký

    06/11/2023
    DMCA.com Protection Status DMCA Compliance Information
    TechTimes Vietnam
    Facebook X (Twitter) Instagram YouTube LinkedIn TikTok
    TechTimes là trang thông tin điện tử tổng hợp; Cơ quan chủ quản: Công ty TNHH TechTimes; Địa chỉ: 39/8A đường 475, khu phố 41, P. Phước Long, TP. HCM; Chịu trách nhiệm nội dung: Ông NGUYỄN VĂN ĐÔ; Giấy phép: Giấy phép thiết lập trang thông tin điện tử tổng hợp số 39/GP-STTTT do Sở Thông tin và Truyền thông Thành phố Hồ Chí Minh cấp ngày 21/08/2017; Giấy phép bổ sung số 23/GP-STTTT cấp ngày 23/03/2021 và quyết định cập nhật số 03/QĐ-STTTT-ICP do Sở TTTT cấp ngày 01/03/2024.

    © 2026 TechTimes.vn - Cập nhật liên tục tin tức, đánh giá sản phẩm, chia sẻ kinh nghiệm sử dụng sản phẩm công nghệ cao, nhận định - phân tích từ chuyên gia uy tín - Email: info@techtimes.vn , Điện thoại: 0935014085• Powered by vHost

    Gõ từ khoá và nhấn Enter để tìm kiếm bài viết trên TechTimes. Nhấn Esc để huỷ.