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ả

    ASUS mở đặt trước ROG Zephyrus Duo GX651 với thiết kế hai màn hình OLED, giá từ 200 triệu đồng

    22/05/2026

    COLORFUL ra mắt bo mạch chủ iGame B850M ULTRA mới cho nền tảng AMD Ryzen

    20/05/2026

    Alienware 15 ra mắt: Laptop gaming mới hướng đến nhiều game thủ hơn nhưng vẫn giữ ADN hiệu năng

    19/05/2026

    Predator Helios Neo 16 – Laptop gaming hiệu năng cao cho game thủ và creator

    18/05/2026

    Tin đồn về việc Apple thử nghiệm iPhone 19 Pro với thiết kế màn hình cong tràn bốn cạnh

    22/05/2026

    Android 17 QPR1 Beta 3 làm mới giao diện chơi nhạc media player với thiết kế dạng thẻ mới

    22/05/2026

    Apple phát hành Safari Technology Preview 244 với nhiều cải tiến hiệu năng và sửa lỗi

    22/05/2026

    Báo cáo mới của Infobip cho thấy giao tiếp đa kênh bùng nổ, WhatsApp tại Việt Nam tăng 437%

    21/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

    Nghiên cứu lớn nhất về quét não phát hiện dấu hiệu thiếu choline ở người mắc rối loạn lo âu

    17/05/2026

    Starlink năm 2026: Internet vệ tinh tiệm cận cáp quang, giảm độ trễ, có thể phủ sóng gần toàn cầu

    14/04/2026

    Hiểu về vật chất tối trong vũ trụ: Từ chuyển động thiên hà đến các phương pháp phát hiện

    04/04/2026

    WordPress 7.0 ra mắt hạ tầng AI mới, cảnh báo nguy cơ đánh cắp khóa API xuất hiện ngay ngày đầu

    23/05/2026

    Google I/O 2026: Google biến tính năng Search thành “ChatGPT mới”, tích hợp AI trò chuyện và trợ lý tự động

    22/05/2026

    Android 17 QPR1 Beta 3 làm mới giao diện chơi nhạc media player với thiết kế dạng thẻ mới

    22/05/2026

    Google Gemini sắp tích hợp công cụ chỉnh sửa ảnh và video của ứng dụng CapCut

    22/05/2026

    WordPress 7.0 ra mắt hạ tầng AI mới, cảnh báo nguy cơ đánh cắp khóa API xuất hiện ngay ngày đầu

    23/05/2026

    Nghiên cứu về Claude Code hé lộ “vũ khí bí mật” của AI agent không nằm ở mô hình trí tuệ nhân tạo

    22/05/2026

    MoMo: Trí tuệ nhân tạo AI không chỉ chặn giao dịch lừa đảo mà còn giúp người dùng “dừng lại đúng lúc”

    14/05/2026

    Website giả mạo Claude AI phát tán mã độc Beagle mới nhắm vào người dùng Windows

    08/05/2026

    Samsung Vision AI 2026 đưa AI TV thành trung tâm giải trí và kết nối thông minh trong gia đình

    22/05/2026

    LG khởi động chiến dịch “Chọn K-Tech, Sống Chuẩn Hàn” tại Việt Nam cùng Shin Ye Eun

    21/05/2026

    Digiworld và Cuckoo tăng cường hợp tác chiến lược, mở rộng thị trường điện gia dụng tại Việt Nam

    15/05/2026

    Samsung OLED S95H: Samsung tái định nghĩa TV OLED, từ thiết bị giải trí thành điểm nhấn nghệ thuật

    13/05/2026

    Dat Bike ra mắt ERA: Xe điện gia đình đi 200km, sạc nhanh hơn 2 giờ, giá từ 29,9 triệu đồng

    23/05/2026

    Vespa kỷ niệm 80 năm tại Việt Nam với nhiều hoạt động và ra mắt bộ sưu tập đặc biệt mang dấu ấn nước Ý

    16/05/2026

    Rolls-Royce ra mắt Black Badge Cullinan by Cyril Kongo: Khi nghệ thuật graffiti bước vào thế giới siêu sang

    15/05/2026

    GSM tái định vị thương hiệu Xanh SM thành Green SM, tăng tốc chiến lược mở rộng toàn cầu

    14/04/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

    Đại học Monash tổ chức Techfest Quốc tế 2023 tại Úc

    24/09/2023

    Ngày hội mở CGN vươn tầm toàn cầu: Năm quốc gia, một tương lai xanh

    23/05/2026

    ATxEnterprise 2026 báo hiệu sự chuyển dịch của Đông Nam Á từ thử nghiệm AI sang triển khai trong doanh nghiệp

    23/05/2026

    Shanghai Electric hưởng ứng Ngày Quốc tế Đa dạng Sinh học bằng các hoạt động xanh tại địa phương

    23/05/2026

    Viện Nghiên cứu Bệnh Rối loạn Nhịp tim Texas tại Trung tâm Y tế St. David sẽ tổ chức hội nghị quốc tế về các bệnh rối loạn nhịp tim phức tạp.

    23/05/2026

    Hệ sinh thái Tài chính Hàng hải Quốc tế (IMFE) vừa được chính thức ra mắt tại TP. Hồ Chí Minh

    21/05/2026

    Lâm Đồng phê duyệt quy hoạch xã Đức Trọng thành trung tâm hành chính trong tương lai

    20/05/2026

    Gardens by the Bay của Singapore giới thiệu hai chương trình trải nghiệm chủ đề Disney mới dành cho gia đình

    18/05/2026

    Shiseido Travel Retail có cách tiếp cận mới đậm chất Nhật Bản để thu hút du khách quốc tế

    15/05/2026

    Dat Bike ra mắt ERA: Xe điện gia đình đi 200km, sạc nhanh hơn 2 giờ, giá từ 29,9 triệu đồng

    23/05/2026

    Counterpoint: Apple lần đầu dẫn đầu thị trường smartphone toàn cầu trong quý I/2026

    23/05/2026

    WordPress 7.0 ra mắt hạ tầng AI mới, cảnh báo nguy cơ đánh cắp khóa API xuất hiện ngay ngày đầu

    23/05/2026

    Ngày hội mở CGN vươn tầm toàn cầu: Năm quốc gia, một tương lai xanh

    23/05/2026

    Dat Bike ra mắt ERA: Xe điện gia đình đi 200km, sạc nhanh hơn 2 giờ, giá từ 29,9 triệu đồng

    23/05/2026

    Counterpoint: Apple lần đầu dẫn đầu thị trường smartphone toàn cầu trong quý I/2026

    23/05/2026

    WordPress 7.0 ra mắt hạ tầng AI mới, cảnh báo nguy cơ đánh cắp khóa API xuất hiện ngay ngày đầu

    23/05/2026

    COMPUTEX 2026 sắp diễn ra quy tụ 1.500 doanh nghiệp, biến Đài Bắc thành tâm điểm AI toàn cầu

    22/05/2026
  • Đánh giá
    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
    9.4

    Đánh giá EPSON EcoTank M2050: Máy in – scan – copy trắng đen tiết kiệm, bền bỉ cho văn phòng hiện đại

    05/04/2026
    9.3

    Đánh giá Sony LinkBuds Clip WF-LC900: Trải nghiệm nghe mở đúng nghĩa, dành cho nhịp sống luôn kết nối

    05/04/2026
  • Đời sống số

    Dat Bike ra mắt ERA: Xe điện gia đình đi 200km, sạc nhanh hơn 2 giờ, giá từ 29,9 triệu đồng

    23/05/2026

    Counterpoint: Apple lần đầu dẫn đầu thị trường smartphone toàn cầu trong quý I/2026

    23/05/2026

    WordPress 7.0 ra mắt hạ tầng AI mới, cảnh báo nguy cơ đánh cắp khóa API xuất hiện ngay ngày đầu

    23/05/2026

    Samsung Vision AI 2026 đưa AI TV thành trung tâm giải trí và kết nối thông minh trong gia đình

    22/05/2026

    COMPUTEX 2026 sắp diễn ra quy tụ 1.500 doanh nghiệp, biến Đài Bắc thành tâm điểm AI toàn cầu

    22/05/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ả

    WordPress 7.0 ra mắt hạ tầng AI mới, cảnh báo nguy cơ đánh cắp khóa API xuất hiện ngay ngày đầu

    23/05/2026

    Nghiên cứu về Claude Code hé lộ “vũ khí bí mật” của AI agent không nằm ở mô hình trí tuệ nhân tạo

    22/05/2026

    MoMo: Trí tuệ nhân tạo AI không chỉ chặn giao dịch lừa đảo mà còn giúp người dùng “dừng lại đúng lúc”

    14/05/2026

    Website giả mạo Claude AI phát tán mã độc Beagle mới nhắm vào người dùng Windows

    08/05/2026

    Tin đồn về việc Apple thử nghiệm iPhone 19 Pro với thiết kế màn hình cong tràn bốn cạnh

    22/05/2026

    Android 17 QPR1 Beta 3 làm mới giao diện chơi nhạc media player với thiết kế dạng thẻ mới

    22/05/2026

    Apple phát hành Safari Technology Preview 244 với nhiều cải tiến hiệu năng và sửa lỗi

    22/05/2026

    Báo cáo mới của Infobip cho thấy giao tiếp đa kênh bùng nổ, WhatsApp tại Việt Nam tăng 437%

    21/05/2026

    WordPress 7.0 ra mắt hạ tầng AI mới, cảnh báo nguy cơ đánh cắp khóa API xuất hiện ngay ngày đầu

    23/05/2026

    Google I/O 2026: Google biến tính năng Search thành “ChatGPT mới”, tích hợp AI trò chuyện và trợ lý tự động

    22/05/2026

    Android 17 QPR1 Beta 3 làm mới giao diện chơi nhạc media player với thiết kế dạng thẻ mới

    22/05/2026

    Google Gemini sắp tích hợp công cụ chỉnh sửa ảnh và video của ứng dụng CapCut

    22/05/2026

    ASUS mở đặt trước ROG Zephyrus Duo GX651 với thiết kế hai màn hình OLED, giá từ 200 triệu đồng

    22/05/2026

    COLORFUL ra mắt bo mạch chủ iGame B850M ULTRA mới cho nền tảng AMD Ryzen

    20/05/2026

    Alienware 15 ra mắt: Laptop gaming mới hướng đến nhiều game thủ hơn nhưng vẫn giữ ADN hiệu năng

    19/05/2026

    Predator Helios Neo 16 – Laptop gaming hiệu năng cao cho game thủ và creator

    18/05/2026

    Samsung Vision AI 2026 đưa AI TV thành trung tâm giải trí và kết nối thông minh trong gia đình

    22/05/2026

    LG khởi động chiến dịch “Chọn K-Tech, Sống Chuẩn Hàn” tại Việt Nam cùng Shin Ye Eun

    21/05/2026

    Digiworld và Cuckoo tăng cường hợp tác chiến lược, mở rộng thị trường điện gia dụng tại Việt Nam

    15/05/2026

    Samsung OLED S95H: Samsung tái định nghĩa TV OLED, từ thiết bị giải trí thành điểm nhấn nghệ thuật

    13/05/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

    Canon giới thiệu EOS R6 Mark III và ống kính RF 45mm f/1.2 STM – nâng tầm nhiếp ảnh và quay phim

    06/11/2025

    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

    NVIDIA giới thiệu cách tối ưu GPU cho AI bằng cách kết hợp NVIDIA Run:ai và NVIDIA NIM

    06/03/2026

    MacBook Neo vs MacBook Air đời cũ: Nên mua hay chọn thế nào để có hiệu năng và hiệu quả tốt hơn?

    06/03/2026

    Trải nghiệm camera và AI Imaging trên Reno15 Series: Khi OPPO tái định nghĩa nhiếp ảnh chân dung bằng AI

    17/01/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 Outreach9 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

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

Apple Sets WWDC 2026 for June 8–12 With Global Online Access

CERAWeek 2026: NVIDIA and Emerald AI Partner to Turn AI Factories Into Smart Grid Assets

GTC 2026: Behind Jensen Huang’s Keynote — A Blueprint for the Next Decade of AI

  • Facebook
  • Twitter
  • Instagram
  • YouTube
  • LinkedIn
  • TikTok
Đánh giá mới
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
9.4

Đánh giá EPSON EcoTank M2050: Máy in – scan – copy trắng đen tiết kiệm, bền bỉ cho văn phòng hiện đại

05/04/2026
9.3

Đánh giá Sony LinkBuds Clip WF-LC900: Trải nghiệm nghe mở đúng nghĩa, dành cho nhịp sống luôn kết nối

05/04/2026
Được quan tâm nhiều
Đời sống số

Đại học FPT ký kết với Viện Công nghệ Schaffhausen và Đại học Jacobs tại Bremen

14/04/2022Ngọc Minh

Đại học FPT ký Biên bản ghi nhớ với SIT và Đại học Jacobs tại…

ĐT Việt Nam viết tiếp lịch sử; MU nhận tin vui từ BXH Ngoại hạng Anh

04/03/2023

SSD di động Samsung T9 xuất hiện trong danh sách bán lẻ

24/09/2023

Ông Kishore Mahbubani: Chu Hải tiết lộ tầm nhìn cho thành phố tương lai

31/12/2025

Sudio ra mắt loạt sản phẩm tai nghe tại thị trường Việt Nam, giá từ 2,39 triệu đồng

06/12/2019

Ứng dụng gọi xe Be nhanh chóng ứng phó dịch Covid

04/02/2021

OPPO Find N5 sẵn sàng ra mắt toàn cầu – Nâng tầm chuẩn mực mới cho điện thoại gập

12/02/2025

Trình duyệt Chrome cảnh báo người dùng các website không an toàn

26/07/2018

Samsung Electronics phát hành Màn hình chơi game Odyssey OLED G9 (Model G95SC) trên toàn thế giới

13/06/2023

Floorrich Global (Singapore) giới thiệu vật liệu phủ sàn nhà SPCPlus có nhiều tính năng ưu việt, đột phá

01/04/2024

Logitech mang đến câu chuyện gì trong hành trình thách thức logic của “chính và phụ”?

19/04/2022

Tại sao công ty Neuralink của Elon Musk bị từ chối cấp phép cấy chip vào não người?

05/03/2023
🔴 LIVE - TECHTIMES
    © TechTimes.vn - Thông tin công nghệ cập nhật liên tục
    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ỷ.