Loading Indicator trong ReactJS
Trong bài tập này, mình sẽ thêm tính năng hiển thị một biểu tượng hoặc thông báo loading trong ứng dụng React của mình khi dữ liệu đang được tải từ API. Điều này sẽ giúp cải thiện trải nghiệm người dùng và làm cho họ cảm thấy thoải mái hơn khi sử dụng ứng dụng của mình.
Bước 1: Tạo Component UserList
Trong component UserList, mình sẽ thêm một state isLoading để theo dõi trạng thái của việc tải dữ liệu từ API. Khi dữ liệu đang được tải, mình sẽ hiển thị biểu tượng loading. Sau khi dữ liệu đã được tải xong, chúng ta sẽ ẩn biểu tượng loading và hiển thị danh sách người dùng.
// src/components/UserList.js import React, { useState, useEffect } from 'react'; import axios from 'axios'; const UserList = () => { const [users, setUsers] = useState([]); const [isLoading, setIsLoading] = useState(true); useEffect(() => { const fetchUsers = async () => { try { const response = await axios.get('https://jsonplaceholder.typicode.com/users'); setUsers(response.data); setIsLoading(false); // Ẩn biểu tượng loading khi dữ liệu đã được tải xong } catch (error) { console.error('Error fetching users:', error); } }; fetchUsers(); }, []); return ( <div> <h1>User List</h1> {isLoading ? ( // Kiểm tra nếu đang tải dữ liệu <div>Loading...</div> // Hiển thị biểu tượng loading ) : ( <ul> {users.map(user => ( <li key={user.id}>{user.name}</li> ))} </ul> )} </div> ); }; export default UserList;
Bước 2: Cập nhật CSS
Nếu bạn muốn tùy chỉnh giao diện của biểu tượng loading, bạn có thể cập nhật file CSS của mình. Dưới đây là một ví dụ đơn giản:
/* styles.css */ .loading { display: flex; justify-content: center; align-items: center; height: 100px; font-size: 20px; }
Bước 3: Import CSS và sử dụng trong App
Đảm bảo bạn import file CSS vào trong component App.js để áp dụng các quy tắc CSS đã được cập nhật:
// src/App.js import React from 'react'; import UserList from './components/UserList'; import './styles.css'; // Import file CSS function App() { return ( <div className="App"> <UserList /> </div> ); } export default App;
Trong bài tập này, mình đã học cách hiển thị một biểu tượng hoặc thông báo loading trong ứng dụng React khi dữ liệu đang được tải từ API. Điều này giúp cải thiện trải nghiệm người dùng và cho họ biết rằng dữ liệu đang được xử lý.
Bài giải
-------------------- ######## --------------------
Câu hỏi thường gặp liên quan:
- Fetching Data from API trong ReactJS
- Displaying Details trong ReactJS
- Searching Data trong ReactJS
- Pagination trong ReactJS
- Loading Indicator trong ReactJS
- Error Handling trong ReactJS
- Form Submission trong ReactJS
- Authentication trong ReactJS
- Deleting Data trong ReactJS
- File Upload trong ReactJS
- Real-time Updates trong ReactJS
- External APIs Integration trong ReactJS
- Rate Limiting và Throttling trong ReactJS