| name | nextjs-app-router |
| description | null |
App Router
Category: nextjs · Status: 🟢 Active
When to use
Khi tổ chức route trong thư mục app/ với layout, page, loading, error.
Steps
- Mỗi route là 1 folder;
page.tsx render UI, layout.tsx bọc layout dùng chung.
- Thêm
loading.tsx cho Suspense fallback, error.tsx ('use client') cho error boundary.
- Dùng route group
(group) để gom route mà không ảnh hưởng URL.
not-found.tsx cho 404; template.tsx khi cần remount mỗi navigation.
- Giữ layout là Server Component, không đặt state client ở layout gốc.
Template
export default function Layout({ children }: { children: React.ReactNode }) {
return <section className="users">{children}</section>;
}
export default async function Page() {
const users = await getUsers();
return <UserList users={users} />;
}
Example
Good: Tách loading/error riêng từng segment, route group gom layout.
Avoid: Nhồi mọi UI vào 1 page, bỏ error boundary, dùng pages/ lẫn app/.
Checklist