FormatBox
Bài viết
© 2026 FormatBox. Made in Ho Chi Minh City.formatbox.support@gmail.comv1.0.0 · 89351ec · Next.js
BlogTrang chủ
FormatBox/Blog/Next.js 14 App Router cho người mới: Hiểu đúng từ đầu
Công nghệNext.jsReactApp RouterServer Components

Next.js 14 App Router cho người mới: Hiểu đúng từ đầu

App Router thay đổi cách Next.js xử lý routing, server components và data fetching.

AAdmin05/10/202612 phút đọc8 phần
Next.js 14 App Router cho người mới: Hiểu đúng từ đầu
Ảnh: Rahul Mishra / Unsplash
Nghe bài viết
0:00/0:00
Mục lục (8)
  1. 01 App Router là gì?
  2. 02 Server Components vs Client Components
  3. 03 Data fetching: đơn giản hơn tưởng tượng
  4. 04 Routing nâng cao
  5. 05 Server Actions: xử lý form không cần API route
  6. 06 Những sai lầm thường gặp
  7. 07 Checklist cho dự án mới
  8. 08 Kết luận

App Router là kiến trúc routing mới của Next.js, ra mắt ổn định từ phiên bản 13 và trở thành mặc định ở Next.js 14. Nếu bạn đang chuyển từ Pages Router hoặc mới làm quen Next.js, bài này sẽ giúp bạn hiểu đúng, tránh những cú lừa phổ biến.

App Router là gì?

App Router dùng thư mục app/ làm gốc. Mỗi folder tương ứng một route, mỗi file đặc biệt (page.tsx, layout.tsx, loading.tsx, error.tsx) định nghĩa một vai trò trong cây giao diện.

  • page.tsx — nội dung chính của route.
  • layout.tsx — khung bao, giữ nguyên khi điều hướng giữa các route con.
  • loading.tsx — UI loading tự động dùng React Suspense.
  • error.tsx — ranh giới lỗi (error boundary) cho nhánh con.

Server Components vs Client Components

Trong App Router, mọi component mặc định là Server Component. Chúng chạy trên server, không gửi JS về client, có thể await trực tiếp dữ liệu.

Chỉ khi cần tương tác (state, effect, event listener), bạn mới dùng Client Component bằng cách thêm chỉ thị:

"use client";

Nguyên tắc: giữ Server Component ở ngoài cùng, đẩy Client Component vào càng sâu càng tốt. Bundle JS sẽ nhỏ hơn, trang nhanh hơn.

Data fetching: đơn giản hơn tưởng tượng

Quên getStaticProps, getServerSideProps đi. Trong Server Component bạn chỉ cần:

async function Page() {
  const res = await fetch("https://api.example.com/posts", { next: { revalidate: 60 } });
  const posts = await res.json();
  return 

;
}

Các tuỳ chọn chính:

  • cache: "no-store" → SSR mỗi request.
  • next: { revalidate: N } → ISR, cache N giây.
  • Không cấu hình → cache mặc định (tối ưu).

Routing nâng cao

  1. Dynamic routes: app/blog/[slug]/page.tsx.
  2. Catch-all: app/docs/[...slug]/page.tsx.
  3. Route groups: tên folder bọc trong ngoặc (group) không ảnh hưởng URL — dùng để nhóm layout.
  4. Parallel routes: slot @sidebar, @modal render song song.

Server Actions: xử lý form không cần API route

Thêm "use server" ở đầu một hàm async và dùng trực tiếp trong form:

async function addTodo(formData: FormData) {
  "use server";
  await db.todos.insert({ title: formData.get("title") });
}

Những sai lầm thường gặp

  • Bỏ "use client" nhưng dùng useState → build fail.
  • Fetch trong Client Component rồi than "sao chậm" — hãy đưa lên Server Component.
  • Dùng router.push cho navigation có full reload — thay bằng <Link>.
  • Quên revalidateTag / revalidatePath sau khi mutate → dữ liệu cũ.

Checklist cho dự án mới

  1. Khởi tạo bằng pnpm create next-app@latest.
  2. Thiết lập app/layout.tsx với font + metadata.
  3. Chia theo tính năng: app/(marketing), app/(app).
  4. Thêm loading.tsx cho mỗi nhánh nặng dữ liệu.
  5. Dùng revalidate hợp lý — đừng cache quá lâu dữ liệu nhạy cảm.

Kết luận

App Router buộc bạn suy nghĩ lại về ranh giới server / client. Khi quen rồi, bạn sẽ thấy nó đơn giản và mạnh mẽ hơn Pages Router rất nhiều — đặc biệt khi kết hợp Server Components và Server Actions.

#Next.js#React#App Router#Server Components
· · ·

Cảm ơn bạn đã đọc đến đây

Nếu bài viết hữu ích, hãy chia sẻ hoặc khám phá thêm bài khác trong cùng chủ đề.

Chia sẻ
Xem tất cả bài viết
Context0%

Next.js 14 App Router cho người mới: Hiểu đúng từ đầu

Mục lục
  1. App Router là gì?
  2. Server Components vs Client Components
  3. Data fetching: đơn giản hơn tưởng tượng
  4. Routing nâng cao
  5. Server Actions: xử lý form không cần API route
  6. Những sai lầm thường gặp
  7. Checklist cho dự án mới
  8. Kết luận
/to jump
Bài tiếp theo macOS 27 – Đột phá mới cho hệ sinh thái MacmacOS 27 – Đột phá mới cho hệ sinh thái Mac
Khám phá thêm

Bài viết liên quan

Xem tất cả
Micro-LED 2026: Nâng cấp từ OLED hay chờ thêm?Công nghệ

Micro-LED 2026: Nâng cấp từ OLED hay chờ thêm?

24/10/2026·9 phút đọcAAdmin
Chiến lược mã nguồn mở cho startup Việt: Tiết kiệm và phát triểnCông nghệ

Chiến lược mã nguồn mở cho startup Việt: Tiết kiệm và phát triển

24/10/2026·4 phút đọcAAdmin
Pin 20000mAh mini: Mật độ năng lượng và rủi ro hàng khôngCông nghệ

Pin 20000mAh mini: Mật độ năng lượng và rủi ro hàng không

24/10/2026·9 phút đọcAAdmin