Kết hợp hiển thị phía máy khách và phía máy chủ trên cùng một trang bằng cách sử dụng next.js

Tram Ho

Chúng tôi có thể dễ dàng tạo các trang do Khách hàng hiển thị (CSR) và các trang được tạo tĩnh (SG) bằng cách sử dụng Next.js. Tuy nhiên, đôi khi, bạn sẽ muốn trang của mình sử dụng kết hợp các phương pháp hiển thị khác nhau đó. Giống như, bạn muốn trang tĩnh của mình được tạo bằng một số dữ liệu từ api, sau đó khi trình duyệt của người dùng đã hydrat hóa trang tĩnh, bạn muốn CSR bắt đầu. Có một cách chúng ta có thể sử dụng điều này, bằng cách sử dụng plugin SWR tuyệt vời từ Vercel (`người tạo ra Next.js). Hãy cùng tìm hiểu sơ qua về nó trong bài viết này.

Trước tiên, hãy tạo một ứng dụng tiếp theo bằng cách chạy

Bây giờ chúng ta cần tạo một api giả để phục vụ cho các bài viết / bài viết của chúng ta. Hãy tạo một tệp mới trong pages/posts.js và dán vào

Bây giờ, chúng tôi sẽ cài đặt plugin SWR

Và tạo thành phần blog của chúng tôi và cũng nhập hook useSWR từ plugin mà chúng tôi vừa cài đặt

Bây giờ, hãy kết xuất các bài đăng trên blog bằng cách sử dụng useSWR

Bây giờ, hãy tạo tệp được tạo tĩnh cho trang của chúng tôi, vì điều này, chúng tôi sẽ sửa đổi mã của mình như

Hãy tạo trang. Đối với cuộc chạy đó

Bạn sẽ thấy điều này sau khi nó được xây dựng thành công

Lưu ý, nếu chúng tôi tiếp tục thêm các bài đăng vào api giả của mình trong khi blog của chúng tôi đang chạy, thì dữ liệu sẽ không được làm mới. Chúng tôi cần tải lại trang để làm điều đó

Hãy khắc phục điều đó ngay bây giờ. Đối với điều đó, chúng tôi sẽ chuyển tùy chọn revalidateOnMount trong móc useSWR của chúng tôi Vì vậy, mã cuối cùng sẽ là

Hãy kiểm tra

Mã nguồn

https://github.com/Salekin-1169/blog-swr-demo

Tài liệu học tập

Các tài liệu chính thức (rõ ràng)

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo