You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/post/khoa-hoc-nextjs-bai-03-advanced-routing.md
+141Lines changed: 141 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,6 +16,7 @@ Các nội dung chính trong bài học lần này:
16
16
1. Phân quyền và chuyển hướng
17
17
2. Tạo layout dùng chung
18
18
3. Loading Screen
19
+
4. I18n - đa ngôn ngữ
19
20
20
21
Với nội dung trên, chúng ta sẽ tiếp tục với việc phân quyền và chuyển hướng, cũng như thực hành chia layout dùng chung, hiển thị màn hình chờ ( loading screen )
21
22
@@ -232,4 +233,144 @@ export function middleware(req: NextRequest) {
232
233
233
234
## Loading Screen
234
235
236
+
Trong một trang web có quá nhiều block không cần thiết phải hiện thị ngay. Như ví dụ bên dưới, thì thông tin khi khách hàng vừa truy cập vào cần thấy ngay thông thường sẽ là header, main content (top products). Còn phần random products có thể hiển thị sau.
1. Đầu tiên khi client request lên server, lúc này theo trình tự server sẽ generate html từ page component
248
+
2. Nếu trong page có các component được gói trong tag Suspend, thì được chuyển đổi để load sau với javascript
249
+
3. Khi trang web được tải xuống thì tài nguyên html sẽ được tải xuống trước, trong lúc đó javascript cùng được tải đồng thời (sẽ có đoạn mã kiểm soát phần tải các component cần stream ). Khi các script này được thực thi thì quá trình stream data diễn ra, trước đó nextjs sẽ tự động tạo ra các placeholder có nội dung mà bạn đã define trong Loading Component. Sau khi dữ liệu sẵn sàng, toàn bộ component của bạn sẽ xuất hiện trên giao diện.
250
+
4. Trong lúc stream diễn ra, bạn hoàn toàn vẫn tương tác được với trang web, đây chính là điểm mấu chốt của công nghệ này.
251
+
252
+
Lợi ích:
253
+
254
+
- Thời gian tải trang nhanh
255
+
- Hiển thị nội dung các cùng chờ thân thiện với user
Thông thường khi làm việc với React, để làm website đa ngôn ngữ chúng ta hay sử dụng https://react.i18next.com/ giúp việc setup trở nên dễ dàng.
338
+
339
+
Còn trong nextjs thì chúng ta làm thế nào, khá đơn giản, các bạn nhớ quy tắc về cấu trúc thư mục chứ. Lúc này chúng ta chỉ cần tạo cấu trúc thư mục tương ứng
0 commit comments