Hello World
\"}\nHello World
\");\n ```\n\n #### Tiện ích `renderHTML()`\n\n Tiện ích độc lập để render bên ngoài các component.\n\n ```tsx\n import { renderHTML } from \"react-intlayer/html\";\n\n const jsx = renderHTML(\"Hello
\", { components: { p: 'div' } });\n ```\n\nHello World
\")}\n ```\n\n #### Tiện ích `renderHTML()`\n\n ```svelte\n \n\n {@html renderHTML(\"Hello World
\")}\n ```\n\nHello World
\"}\nHello World
\")}Hello World
\")}Hello World
\"}\nHello World
\")}Hello World
\")}Đặt câu hỏi và nhận tóm tắt tài liệu bằng cách tham chiếu trang này và nhà cung cấp AI bạn chọn
Tài liệu này đã lỗi thời, phiên bản gốc đã được cập nhật vào 24 tháng 3, 2026.
Xem tài liệu tiếng AnhLịch sử phiên bản
- "Add `intlayerHTML` plugin object; use `app.use(intlayerHTML)` instead of `app.use(installIntlayerHTML)`"v8.5.024/3/2026
- "move import from `{{framework}}-intlayer` to `{{framework}}-intlayer/html`"v8.5.024/3/2026
- "Thêm HTMLRenderer / useHTMLRenderer / tiện ích renderHTML"v8.0.022/1/2026
- "Thêm hỗ trợ phân tích cú pháp HTML"v8.0.020/1/2026
Nội dung của trang này đã được dịch bằng AI.
Xem phiên bản mới nhất của nội dung gốc bằng tiếng AnhNếu bạn có ý tưởng để cải thiện tài liệu này, vui lòng đóng góp bằng cách gửi pull request trên GitHub.
Liên kết GitHub tới tài liệuSao chép Markdown của tài liệu vào bộ nhớ tạm
Nội dung HTML / HTML trong Intlayer
Intlayer hỗ trợ nội dung HTML, cho phép bạn nhúng nội dung phong phú, có cấu trúc vào trong các dictionary của mình. Nội dung này có thể được hiển thị bằng các thẻ HTML tiêu chuẩn hoặc được thay thế bằng các component tùy chỉnh vào thời điểm chạy.
Khai báo nội dung HTML
Bạn có thể khai báo nội dung HTML bằng hàm html hoặc đơn giản bằng một chuỗi.
Sử dụng hàm html để khai báo rõ ràng nội dung HTML. Điều này đảm bảo các thẻ chuẩn được ánh xạ đúng ngay cả khi phát hiện tự động bị tắt.
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
import { html, type Dictionary } from "intlayer";const htmlDictionary = { key: "app", contentAutoTransformation: true, // có thể đặt trong tệp cấu hình content: { myHtmlContent: html("<p>Hello <strong>World</strong></p>"), },} satisfies Dictionary;export default htmlDictionary;Node html()
Hàm html() là một tính năng mới trong Intlayer v8 cho phép bạn xác định rõ ràng nội dung HTML trong từ điển của mình. Mặc dù Intlayer thường có thể tự động phát hiện nội dung HTML, nhưng việc sử dụng hàm html() mang lại một số lợi thế:
- An toàn kiểu (Type Safety): Hàm
html()cho phép bạn xác định các props mong đợi cho các thành phần tùy chỉnh, cung cấp khả năng tự động hoàn thành và kiểm tra kiểu tốt hơn trong trình soạn thảo của bạn. - Khai báo rõ ràng: Nó đảm bảo rằng một chuỗi luôn được coi là HTML, ngay cả khi nó không chứa các thẻ HTML tiêu chuẩn để kích hoạt tính năng tự động phát hiện.
- Định nghĩa thành phần tùy chỉnh: Bạn có thể truyền đối số thứ hai vào
html()để xác định các thành phần tùy chỉnh và các kiểu prop mong đợi của chúng.
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
import { html } from "intlayer";const myContent = html( "<MyCustomComponent title='Xin chào'>Thế giới</MyCustomComponent>", { MyCustomComponent: { title: "string", children: "node", }, });Khi sử dụng phương thức .use() trên một node HTML, các thành phần bạn cung cấp sẽ được kiểm tra so với định nghĩa được cung cấp trong hàm html() (nếu có).
Kết xuất HTML
Việc kết xuất có thể được xử lý tự động bởi hệ thống nội dung của Intlayer hoặc thực hiện thủ công bằng các công cụ chuyên dụng.
Kết xuất tự động (sử dụng useIntlayer)
Khi bạn truy cập nội dung qua useIntlayer, các nút HTML đã được chuẩn bị sẵn để kết xuất.
Các nút HTML có thể được kết xuất trực tiếp dưới dạng JSX. Các thẻ tiêu chuẩn hoạt động tự động.
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
import { useIntlayer } from "react-intlayer";const AppContent = () => { const { myHtmlContent } = useIntlayer("app"); return <div>{myHtmlContent}</div>;};Sử dụng phương thức .use() để cung cấp component tùy chỉnh hoặc ghi đè các thẻ:
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
{myHtmlContent.use({ p: (props) => <p className="prose" {...props} />, CustomLink: ({ children }) => <a href="/details">{children}</a>,})}Cấu hình toàn cục với HTMLProvider
Bạn có thể cấu hình cách render HTML ở mức toàn cục cho toàn bộ ứng dụng của mình. Điều này lý tưởng để định nghĩa các component tùy chỉnh mà nên có sẵn trong tất cả nội dung HTML.
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
import { HTMLProvider } from "react-intlayer/html";export const AppProvider = ({ children }) => ( <HTMLProvider components={{ p: (props) => <p className="prose" {...props} />, CustomLink: ({ children }) => <a href="/details">{children}</a>, }} > {children} </HTMLProvider>);Kết xuất Thủ công & Công cụ Nâng cao
Nếu bạn cần kết xuất chuỗi HTML thô hoặc muốn kiểm soát nhiều hơn việc ánh xạ component, hãy sử dụng các công cụ sau.
Thành phần <HTMLRenderer />
Kết xuất một chuỗi HTML sử dụng các component cụ thể.
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
import { HTMLRenderer } from "react-intlayer/html";<HTMLRenderer components={{ p: MyCustomP }}> {"<p>Hello World</p>"}</HTMLRenderer>Hook useHTMLRenderer()
Lấy một hàm renderer đã được cấu hình sẵn.
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
import { useHTMLRenderer } from "react-intlayer/html";const renderHTML = useHTMLRenderer({ components: { strong: (props) => <strong {...props} className="text-red-500" /> }});return renderHTML("<p>Hello <strong>World</strong></p>");Tiện ích renderHTML()
Tiện ích độc lập để render bên ngoài các component.
Sao chép đoạn mã vào khay nhớ tạm (clipboard)
import { renderHTML } from "react-intlayer/html";const jsx = renderHTML("<p>Hello</p>", { components: { p: 'div' } });Tham chiếu Tùy chọn
Các tùy chọn này có thể được truyền cho HTMLProvider, HTMLRenderer, useHTMLRenderer, và renderHTML.
Mở bảng trong một cửa sổ bật lên để xem toàn bộ nội dung dữ liệu một cách rõ ràng
| Tùy chọn | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
components | Record<string, any> | {} | Bản đồ các thẻ HTML hoặc tên component tùy chỉnh tới các component tương ứng. |
renderHTML | Function | null | Một hàm render/kết xuất tùy chỉnh để thay thế hoàn toàn bộ parser HTML mặc định (Chỉ dành cho Vue/Svelte providers). |
Lưu ý: Đối với React và Preact, các thẻ HTML chuẩn được cung cấp tự động. Bạn chỉ cần truyền prop components nếu bạn muốn ghi đè chúng hoặc thêm các component tùy chỉnh.