Next.js là một framework phát triển ứng dụng web front-end dựa trên React, mang đến nhiều tính năng mạnh mẽ giúp tăng tốc độ, hiệu suất và khả năng tối ưu hóa SEO cho các ứng dụng web của bạn.

Next.js là gì?

Next.js là một framework được xây dựng trên nền tảng React của Facebook, giúp tối ưu hóa việc render cả phía server (Server-Side Rendering - SSR) và phía client (Client-Side Rendering - CSR). Được phát triển bởi Vercel, Next.js cho phép các nhà phát triển xây dựng các ứng dụng web hiệu suất cao với các tính năng như render trước (pre-rendering), tĩnh hóa (static generation), và chuyển đổi động (dynamic routing).

Các tính năng nổi bật của Next.js

  • Server-Side Rendering (SSR): Cho phép ứng dụng render trên server trước khi gửi về client, giúp cải thiện tốc độ tải trang và hiệu suất SEO.
  • Static Generation (SG): Tạo ra các trang tĩnh từ dữ liệu động, giúp trang web trở nên nhanh và an toàn hơn.
  • Automatic Code Splitting: Tự động tách các mã nguồn thành các gói nhỏ hơn, giúp giảm thời gian tải trang web.
  • API Routes: Cung cấp khả năng xây dựng các API endpoint trực tiếp trong Next.js mà không cần thiết lập server tách biệt.
  • Dynamic Routing: Cho phép tạo các route động mà không cần cấu hình phức tạp.

Phân biệt SSR và SSG trong Next.js

Khi làm việc với Next.js, các bạn thường nghe nói tới hai khái niệm phổ biến là Server-Side Rendering (SSR) và Static Site Generation (SSG). Vậy điểm khác nhau cơ bản giữa hai loại render này là gì?

Server-Side Rendering (SSR)

SSR là việc render các trang web trên server và gửi kết quả cho client. Điều này giúp cải thiện tốc độ tải trang và làm cho nội dung trang web có thể dễ dàng được các công cụ tìm kiếm index, tối ưu hóa SEO một cách tốt nhất. Trong Next.js, bạn có thể sử dụng hàm getServerSideProps để thực hiện SSR.

getStaticProps

Bắt đầu với Next.js

Để bắt đầu một dự án mới với Next.js, các bạn cần cài đặt Node.js và npm (hoặc yarn).

Khởi tạo dự án Next.js

Các bạn có thể khởi tạo một dự án mới bằng cách sử dụng create-next-app command:

/pages

Sau đó, các bạn có thể truy cập trang này tại /about.

Chuyển hướng (Routing) trong Next.js

Next.js sử dụng một mô hình routing tự động dựa trên cấu trúc file. Bất kỳ file nào được tạo trong thư mục /pages sẽ tự động trở thành một route. Ví dụ, với file about.js chúng ta vừa tạo, URL sẽ là /about.

Tạo liên kết giữa các trang

Next.js cung cấp một component Link để tạo liên kết giữa các trang:

/pages/api

Sau đó, các bạn có thể truy cập API này tại /api/hello.

Sử dụng API Route trong Frontend

Trong một trang frontend, các bạn có thể gọi API này dùng fetch:

    export async function getServerSideProps() {
      const res = await fetch('http://localhost:3000/api/hello')
      const data = await res.json()
      
      return { props: { text: data.text } }
    }

    export default function Home({ text }) {
      return (
        Home Page{text}
      )
    }
    

Kết luận

Next.js là một công cụ mạnh mẽ và dễ dàng sử dụng cho việc phát triển các ứng dụng web hiện đại với tốc độ cao và tối ưu hóa SEO. Từ các tính năng render phía server đến khả năng tạo trang tĩnh, Next.js cung cấp cho các bạn tất cả những gì cần thiết để xây dựng các ứng dụng web tiên tiến. Các bạn nên thường xuyên cập nhật và tìm hiểu các tài liệu mới nhất để tận dụng tối đa sức mạnh của Next.js trong các dự án phát triển web của mình.