Kiểm tra trang thái cuộn và trang thái vô tận trong React mà không cần backend
tsudev· 24/10/2026
Giới thiệu
Khi phát triển ứng dụng React, việc kiểm tra trang thái cuộn và trang thái vô tận là rất quan trọng để đảm bảo rằng ứng dụng của bạn hoạt động đúng như mong đợi. Tuy nhiên, việc kiểm tra này thường đòi hỏi phải có backend để cung cấp dữ liệu. Trong bài viết này, chúng ta sẽ tìm hiểu cách kiểm tra trang thái cuộn và trang thái vô tận trong React mà không cần backend.Trang thái cuộn
Trang thái cuộn là một tính năng cho phép người dùng cuộn xuống để tải thêm dữ liệu. Để kiểm tra trang thái cuộn trong React, bạn có thể sử dụng một số phương pháp sau:* Sử dụng thư viện react-infinite-scroller để tạo một danh sách vô tận.
* Sử dụng phương pháp scroll để kiểm tra khi người dùng cuộn xuống.
Ví dụ, bạn có thể sử dụng phương pháp scroll như sau:
jsx
import React, { useState, useEffect } from 'react';
function App() {
const [data, setData] = useState([]);
const [loading, setLoading] = useState(false);
useEffect(() => {
const handleScroll = () => {
if (window.innerHeight + window.scrollY >= document.body.offsetHeight) {
setLoading(true);
// tải thêm dữ liệu
}
};
window.addEventListener('scroll', handleScroll);
return () => {
window.removeEventListener('scroll', handleScroll);
};
}, []);
return (
<div>
{data.map((item) => (
<div key={item.id}>{item.name}</div>
))}
{loading && <div>Đang tải...</div>}
</div>
);
}Trang thái vô tận
Trang thái vô tận là một tính năng cho phép người dùng tải thêm dữ liệu khi họ cuộn xuống. Để kiểm tra trang thái vô tận trong React, bạn có thể sử dụng một số phương pháp sau:
* Sử dụng thư viện react-infinite-scroller để tạo một danh sách vô tận.
* Sử dụng phương pháp scroll để kiểm tra khi người dùng cuộn xuống và tải thêm dữ liệu.
Ví dụ, bạn có thể sử dụng phương pháp scroll như sau:
jsx
import React, { useState, useEffect } from 'react';
function App() {
const [data, setData] = useState([]);
const [loading, setLoading] = useState(false);
const [hasMore, setHasMore] = useState(true);
useEffect(() => {
const handleScroll = () => {
if (window.innerHeight + window.scrollY >= document.body.offsetHeight) {
setLoading(true);
// tải thêm dữ liệu
if (data.length >= 100) {
setHasMore(false);
}
}
};
window.addEventListener('scroll', handleScroll);
return () => {
window.removeEventListener('scroll', handleScroll);
};
}, [data]);
return (
<div>
{data.map((item) => (
<div key={item.id}>{item.name}</div>
))}
{loading && <div>Đang tải...</div>}
{!hasMore && <div>Không có thêm dữ liệu</div>}
</div>
);
}Kết luận
Trong bài viết này, chúng ta đã tìm hiểu cách kiểm tra trang thái cuộn và trang thái vô tận trong React mà không cần backend. Chúng ta đã sử dụng phương pháp
scroll để kiểm tra khi người dùng cuộn xuống và tải thêm dữ liệu. Hy vọng rằng bài viết này sẽ giúp các nhà phát triển có thể kiểm tra và tối ưu hóa ứng dụng của mình một cách hiệu quả.
Nguồn tham khảo: https://dev.to/nileslabs/how-to-test-cursor-based-pagination-infinite-scroll-in-react-without-a-backend-mpc