Trong bài viết này
Kỹ thuật

Mẹo TypeScript Cho React Server Components

Server components thay đổi ý nghĩa của các kiểu dữ liệu. Prop vốn luôn phải serialize được giờ bắt buộc phải vậy, và params đến dưới dạng promise. Đây là những thói quen giữ cho codebase trộn server/client luôn ổn định.

Định kiểu ở ranh giới, không phải bên trong

Đánh dấu client component tường minh bằng "use client" và định kiểu prop của chúng là dữ liệu thuần. Mọi thứ vượt qua ranh giới đó phải sống sót qua serialization, nên hãy ưu tiên chuỗi, số và object thường thay vì instance của class.

Async params là một promise

Trong Next.js 16, page props đến bất đồng bộ. Định kiểu đúng loại bỏ cả một lớp sự cố lúc chạy:

interface PageProps {
  params: Promise<{ locale: string; slug: string }>;
}

export default async function Page({ params }: PageProps) {
  const { slug } = await params;
}

Để message đi qua props

Bộ nạp bản dịch chỉ chạy phía server. Truyền object message đã resolve vào client component giúp bản dịch không lọt vào bundle phía client và kiểu dữ liệu luôn trung thực.

Danh sách kiểm

  • Prop vượt tuyến server/client là dữ liệu thuần
  • Params và searchParams được awaited và định kiểu là promise
  • View model đến từ repository, không bao giờ là dòng dữ liệu thô

Bài viết liên quan

Kiến thức

Xây Dựng Blog Này Bằng Next.js 16 và Supabase

Cách blog công khai trên trang này hoạt động: repository có kiểu hóa, nội dung markdown song ngữ, danh sách có cache và SEO riêng cho từng bài.

2 phút đọc