Tiếp theo JS kết xuất chuỗi HTML
Gọi tất cả Tiếp theo. nhà phát triển js. Bạn có ước mình có thể làm được nhiều hơn với phần mềm trung gian không? . js được tạo tĩnh ở cạnh dựa trên dữ liệu định vị địa lý? Show
Bây giờ bạn có thể. Với tiếp theo. js Phần mềm trung gian nâng cao. Nó được hỗ trợ bởi Netlify Edge Functions, hoàn toàn mới và chỉ có trên Netlify Trong hướng dẫn này, tôi chỉ cho bạn cách sử dụng Next. js Advanced Middleware trên Netlify để chặn yêu cầu đối với trang được tạo trước tĩnh và viết lại phản hồi HTML để thay đổi một số văn bản và đạo cụ trang dựa trên dữ liệu vị trí địa lý Triển khai mã hướng dẫn cho NetlifyĐây là trang web demo tôi đã tạo trước đó. Nếu bạn muốn tham gia ngay lập tức, bạn có thể rẽ nhánh kho lưu trữ mã của hướng dẫn trên GitHub và triển khai trang web vào tài khoản Netlify của riêng bạn sau vài giây. Nhấp vào nút Deploy to Netlify bên dưới và dùng thử Tự xây dựng nóNgoài ra, nếu bạn muốn tạo mã từ đầu, bạn có thể làm theo hướng dẫn bên dưới để tạo một Tiếp theo mới. js, thêm một tuyến tĩnh mới và sử dụng phần mềm trung gian để viết lại HTML của phản hồi tại The Edge điều kiện tiên quyếtTrước khi bắt đầu, hãy kiểm tra xem bạn đã có các công cụ cần thiết để hoàn thành hướng dẫn chưa
Thiết lập dự ánHãy tạo một Tiếp theo mới. ứng dụng js. Đi đến thiết bị đầu cuối của bạn và chạy lệnh sau, thay thế 5 cho tên bạn chọn
Tiếp theo, để điều kỳ diệu xảy ra, chúng ta cần gói 6. Chạy lệnh sau trong thiết bị đầu cuối của bạn, lệnh này sẽ cài đặt gói dưới dạng phụ thuộc trong gói của dự án. tập tin json
Tiếp theo, mở dự án trong IDE bạn chọn Thêm một tuyến đường tĩnh mớiKế tiếp. js cung cấp định tuyến dựa trên tệp. Việc thêm tệp JavaScript hoặc TypeScript vào thư mục 7 sẽ tạo một tuyến trình duyệt mới, có cùng tên với tệp. Tạo một tệp mới trong thư mục pages có tên 8 và thêm đoạn mã sau
Quay lại thiết bị đầu cuối của bạn, khởi động máy chủ phát triển bằng Netlify CLI bằng cách chạy lệnh sau
Một tab trình duyệt sẽ tự động mở ra trên localhost. 8888. Điều hướng đến http. //máy chủ cục bộ. 8888/static trong trình duyệt của bạn và có trang tĩnh mới của bạn Chúng tôi sẽ tạo trước trang này khi xây dựng với một số dữ liệu cơ bản trước khi chúng tôi chuyển đổi nó bằng cách sử dụng Tiếp theo. js Phần mềm trung gian nâng cao. Bằng cách xuất một hàm có tên 9 từ một tệp trang, Tiếp theo. js sẽ hiển thị trước trang này khi xây dựng bằng cách sử dụng dữ liệu được trả về bởi 0Thêm đoạn mã sau vào 8 và chuyển giá trị 2 vào hàm 3
Và để xác nhận mọi thứ đã được kết nối, đây là trang tĩnh được cập nhật của chúng tôi, sử dụng thông báo chống đỡ Tiếp theo, vào phần mềm trung gian Viết lại HTML và chuyển đổi dữ liệu trangPhần mềm trung gian trong Tiếp theo. js cho phép bạn chạy mã trước khi yêu cầu HTTP hoàn tất — và nằm ở giữa yêu cầu và phản hồi. Bạn có thể tạo tệp phần mềm trung gian trong Tiếp theo. js bằng JavaScript hoặc TypeScript và với mục đích của hướng dẫn này, chúng tôi sẽ viết phần mềm trung gian trong TypeScript Tại thư mục gốc của dự án, hãy tạo một tệp mới và đặt tên là 4. Tệp này sẽ chạy trên mọi yêu cầu khi ứng dụng của bạn đang chạy — bao gồm các trang, tệp tĩnh và nội dung. Trong 4, thêm đoạn mã sau. Chúng tôi đang nhập loại 6, đại diện cho yêu cầu HTTP đến, xuất một hàm không đồng bộ có tên 7 và chuyển yêu cầu dưới dạng 8 cho hàm, là một đối tượng 6
Trong bản demo này, chúng tôi muốn phần mềm trung gian chạy trên tuyến đường có tên 0. Hãy lấy tên đường dẫn từ yêu cầu và chuẩn bị hàm để thực hiện điều gì đó khi tên đường dẫn bắt đầu bằng 0
Tiếp theo, đã đến lúc cho phép thuật Netlify. Hãy viết lại HTML của trang tĩnh mà chúng ta đã tạo trước đó. Gần đầu tệp, nhập 2 dưới dạng nhập có tên từ 6
Bên trong chức năng phần mềm trung gian, hãy khởi tạo một Netlify 2 mới, chuyển vào bản gốc 6 dưới dạng 8
Điều này nâng cao đối tượng yêu cầu ban đầu bằng cách thêm vào tất cả nội dung hay có sẵn trong Netlify Edge Functions. Các chức năng của Netlify Edge rất giống các chức năng không có máy chủ. Bạn có thể viết chúng bằng JavaScript hoặc TypeScript, nhưng thay vì sử dụng Node. js, chúng được cung cấp bởi Deno — một thời gian chạy mã nguồn mở được xây dựng dựa trên các tiêu chuẩn web — và chúng được thực thi tại vị trí máy chủ gần nhất với một yêu cầu. Điều này cho phép cá nhân hóa đầy đủ các trang tại The Edge in Next. js, không cần sử dụng 7 trong định tuyến trang của bạn. Nó cũng hoạt động với Tái tạo tĩnh tăng dầnGiờ đây, đối tượng 6 của chúng tôi đã được nâng cấp bằng đối tượng 2 của Netlify, chúng tôi có quyền sửa đổi phản hồi HTTP trước khi nó được trả về — vì chúng tôi thực sự có thể gửi yêu cầu tới nguồn gốc để tìm nạp và làm việc với nóThêm đoạn mã sau vào trong câu lệnh 0 và hãy giải nén xem nó làm gì
Nếu tên đường dẫn bắt đầu bằng 0, chúng tôi lấy phản hồi tiếp theo trong chuỗi HTTP bằng cách đợi 2 — đây là trang tĩnh của chúng tôi — và gán nó cho biến 3. Sau đó, sử dụng dữ liệu vị trí địa lý từ 8, chúng tôi tạo một thông báo mới được cá nhân hóa để thay thế nội dung trang tĩnhKế tiếp. js Advanced Middleware từ Netlify bao gồm chức năng 5 và cũng có hỗ trợ cho các chuyển đổi mạnh mẽ hơn bằng cách sử dụng trình chuyển đổi luồng HTML Rewriter . Để có quyền truy cập vào thông báo từ DOM trong chức năng phần mềm trung gian, chúng tôi thêm ID vào nút DOM chứa thông báo mà chúng tôi muốn chuyển đổi trên trang tĩnh 0Sau đó, chúng tôi chạy 5 trên phản hồi, chuyển ID DOM mà chúng tôi đã thêm vào thông báo trong 8 và thông báo mới mà chúng tôi đã tạo. Để đảm bảo nội dung ngậm nước trên máy khách khớp với HTML được hiển thị phía máy chủ (và để tránh 8), chúng tôi cũng có thể cập nhật các đạo cụ trang bằng cách sử dụng 9 để cập nhật dữ liệu thông báo cơ bản trên trang.Cuối cùng, trả lại 3. Quay lại trình duyệt của bạn và xem thông báo được cập nhật trên trang được tạo tĩnh trước đóThông báo đã được chuyển đổi trong tệp phần mềm trung gian và HTML của trang tĩnh đã được viết lại. Và hơn thế nữa — trang chống đỡ cũng đã được cập nhật. Kiểm tra nguồn trang, tìm kiếm 1 trong DOM và xem chỗ dựa thông báo trang được cập nhật — tất cả được cung cấp bởi Next. js Advanced Middleware từ NetlifyHãy triển khai lên Netlify để xem quá trình viết lại HTML diễn ra trong thời gian thực trên một URL trực tiếp Kết nối repo Git của bạnChúng tôi có một số tùy chọn về cách triển khai Tiếp theo. js lên Netlify. Trong hướng dẫn này, chúng tôi sẽ kết nối với một repo Git mới để chúng tôi nhận được tất cả CI/CD được đưa vào và định cấu hình miễn phí Kế tiếp. js đi kèm với repo Git đã được khởi tạo. Giai đoạn và cam kết các tệp của bạn bằng các lệnh sau 1Các bước tiếp theo sẽ hướng dẫn bạn thêm kho lưu trữ của mình vào GitHub thông qua GitHub CLI — nhưng bạn có thể đẩy dự án của mình lên GitHub theo bất kỳ cách nào bạn cảm thấy thoải mái nhất Chạy lệnh sau trong thiết bị đầu cuối của bạn để tạo kho lưu trữ mới được kết nối với tài khoản GitHub của bạn 2Khi được nhắc về loại kho lưu trữ bạn muốn tạo, hãy chọn. 2. Thực hiện theo các lời nhắc còn lại để điền vào các chi tiết dự án có liên quan. Bây giờ, bạn đã sẵn sàng triển khai lên NetlifyTriển khai vào Netlify bằng Netlify CLINếu bạn chưa đăng nhập vào Netlify CLI, hãy chạy lệnh sau trong thiết bị đầu cuối của bạn và làm theo lời nhắc để ủy quyền với Netlify (một cửa sổ trình duyệt sẽ mở ra) 3Tiếp theo, chạy lệnh sau để khởi tạo một dự án mới trên Netlify 4Điền vào các lời nhắc sau để thiết lập dự án mới
Netlify CLI sẽ tự động phát hiện bạn đang sử dụng Next. js, vì vậy các lời nhắc sau sẽ được điền sẵn. Nhấn enter để sử dụng giá trị mặc định
Đợi vài giây… và trang web mới của bạn được triển khai. 🎉 Giờ đây, bạn có thể thể hiện các kỹ năng cá nhân hóa mới của mình trong phần Tiếp theo. js bằng cách gửi URL trực tiếp cho bạn bè của bạn Tìm hiểu thêmTruy cập tài liệu chính thức của Netlify để tìm hiểu về những gì hiện có thể thực hiện được với Next. js Advanced Middleware — chỉ có trên Netlify Làm cách nào để hiển thị HTML trong js tiếp theo?Để làm được điều đó, tôi đã làm như sau. . Creating an HTML file. Firstly, create an HTML file say myfile.html with your desired content .. . Tạo API. Tạo một thư mục mới api bên trong thư mục trang của bạn và tạo myfile. js bên trong nó với nội dung sau. nhập fs từ "fs";. cập nhật tiếp theo. cấu hình. . Bước cuối cùng Làm cách nào để hiển thị chuỗi HTML?Chúng tôi không thể hiển thị trực tiếp chuỗi này, các thẻ html cũng sẽ được coi là chuỗi thô. Giải pháp đơn giản nhất cho việc này là sử dụng DangerlySetInnerHTML . bằng cách sử dụng DangerlySetInnerHTML, toàn bộ html trong chuỗi được giữ nguyên. Một cách khác là sử dụng thư viện html-Reac-Parser.
Bạn có thể sử dụng HTML trong JS tiếp theo không?Câu trả lời là bạn có thể, nhưng bạn không nên . Nếu trang HTML của bạn chứa logic nghiệp vụ hoặc phương thức gọi bên ngoài phạm vi của tệp và đang sử dụng nó để thực hiện một số chương trình động, bạn không nên sử dụng viết lại. Trong trường hợp các trang HTML của bạn muốn sử dụng các phương thức hoặc API từ phần Tiếp theo của bạn.
Làm cách nào để chuyển đổi HTML thành chuỗi trong React?Sử dụng nguy hiểmSetInnerHTML của React
. Do đó, các nhà thiết kế React Js đã đặt tên cho phương thức cho phép bạn phân tích cú pháp một chuỗi thành HTML là DangerlySetInnerHTML. Đây là cách sử dụng nó. Không sử dụng nguy hiểmSetInnerHTML để hiển thị HTML có nguồn gốc từ các nguồn không đáng tin cậy. |