Trạng thái tải
Thuộc phần Kiến thức thiết yếu về Next.js trong hành trình React của Coddy. Bài học 26 trên 47.
Một trang bất đồng bộ chỉ nhanh bằng lần tải chậm nhất. Trong lúc Next.js chờ, người dùng đang nhìn vào… chính xác là gì?
Đặt một tệp loading.jsx cạnh trang, và câu trả lời là: bất cứ thứ gì bạn muốn.
app/
slow/
page.jsx the async page
loading.jsx shown while it resolvesĐây là một thành phần thông thường có phần xuất mặc định và không nhận thuộc tính nào:
export default function Loading() {
return <p>Loading the special…</p>;
}Bạn không bao giờ tự kết xuất tệp này hay nhập nó. Đặt tệp bên cạnh trang sẽ bao trang đó trong một ranh giới Suspense: Next.js hiển thị loading.jsx ngay khi bạn điều hướng, thay bằng trang thật khi các thao tác await hoàn tất và giữ cho bố cục xung quanh không bị nhấp nháy.
Có hai điều suy ra từ vị trí của tệp:
- Tệp này bao phủ trang nằm cùng cấp với nó và mọi thứ nằm sâu bên dưới, cho đến khi một
loading.jsxở cấp sâu hơn thay thế - Chỉ trang được thay đổi: phần đầu trang và thanh điều hướng từ bố cục vẫn giữ nguyên và vẫn có thể nhấp vào
Hãy để ý những gì bạn không viết: không có cờ tải, không có trạng thái, không có if (loading). Tên tệp chính là cơ chế.
Thử thách
Dễapp/slow/page.jsx chờ tải chậm, còn app/slow/loading.jsx đã có nhưng đang trống.
- Bên trong
<main>, thêm một<p>cóid="loading". - Nội dung của thẻ phải chính xác là
Loading the special...
Không thể chỉnh sửa trang và lib/data.js. Các bài kiểm tra truy cập /slow và xem màn hình trước khi dữ liệu đến.
Tự làm thử
import './globals.css';
export const metadata = {
title: 'My App',
};
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
{children}
</body>
</html>
);
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức thiết yếu về Next.js
4Máy chủ và client
Hai loại thành phầnĐọc lỗiDòng 'use client'Giữ phần client nhỏ gọnMáy chủ bên trong clientTóm tắt: máy chủ và client7Điều hướng phía máy khách
Liên kết đang hoạt độngĐiều hướng bằng codeLọc bằng URLBộ xử lý tuyến đườngÔn tập: Điều hướng2Định tuyến và liên kết
Thư mục tạo thành tuyến đườngTuyến đường lồng nhauLiên kết các trangTuyến đường độngTrang không tìm thấyÔn tập: định tuyến5Dữ liệu trên máy chủ
Thành phần bất đồng bộChờ tham số của tuyếnHai lần gọi dữ liệu cùng lúcTrạng thái tảiXử lý lỗiÔn tập: Lấy dữ liệu