Menu
CoddyTech

Ôn tập: Lấy dữ liệu

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 28 trên 47.

challenge icon

Thử thách

Trung bình

Tóm tắt chương: một thực đơn tải mọi thứ trên máy chủ.

lib/data.js đã có sẵn và bị khóa: getDishes() trả về một promise chứa mảng các đối tượng { id, name, price }, còn getDish(slug) tìm một đối tượng trong số đó.

  1. Trong app/page.jsx, biến Home thành hàm async và dùng await getDishes() để gán kết quả cho biến dishes.
  2. Bên trong <ul id="dish-list">, hiển thị một <li> cho mỗi món ăn, với key={dish.id}, id={dish.id} và tên món ăn name làm nội dung.
  3. app/menu/[slug]/page.jsx hiển thị Unknown dish cho mọi URL: hàm này phân rã params mà không chờ giá trị. Hãy dùng await với params để thao tác tra cứu nhận được slug thực. Khi truy cập /menu/carbonara, #dish-name phải hiển thị Carbonara và #dish-price phải hiển thị giá của món ă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>
    );
}

Tất cả bài học trong Kiến thức thiết yếu về Next.js