Hello World
\"}\nHello World
\");\n ```\n\n #### Utilitas `renderHTML()`\n\n Utilitas mandiri untuk merender di luar komponen.\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 #### Utilitas `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
\")}Ajukan pertanyaan Anda dan dapatkan ringkasan dokumen dengan merujuk halaman ini dan penyedia AI pilihan Anda
Dokumen ini sudah usang, versi dasar telah diperbarui pada 24 Maret 2026.
Buka dokumen bahasa InggrisRiwayat Versi
- "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
- "Menambahkan HTMLRenderer / useHTMLRenderer / utilitas renderHTML"v8.0.022/1/2026
- "Menambahkan dukungan parsing HTML"v8.0.020/1/2026
Konten halaman ini diterjemahkan menggunakan AI.
Lihat versi terakhir dari konten aslinya dalam bahasa InggrisJika Anda memiliki ide untuk meningkatkan dokumentasi ini, silakan berkontribusi dengan mengajukan pull request di GitHub.
Tautan GitHub ke dokumentasiSalin Markdown dokumentasi ke clipboard
Konten HTML / HTML di Intlayer
Intlayer mendukung konten HTML, memungkinkan Anda menyematkan konten yang kaya dan terstruktur dalam dictionaries Anda. Konten ini dapat dirender dengan tag HTML standar atau digantikan dengan komponen kustom saat runtime.
Mendeklarasikan Konten HTML
Anda dapat menyatakan konten HTML menggunakan fungsi html atau cukup sebagai string.
Gunakan fungsi html untuk secara eksplisit menyatakan konten HTML. Ini memastikan tag standar dipetakan dengan benar bahkan jika deteksi otomatis dinonaktifkan.
Salin kode ke clipboard
import { html, type Dictionary } from "intlayer";const htmlDictionary = { key: "app", contentAutoTransformation: true, // dapat diatur di file konfigurasi content: { myHtmlContent: html("<p>Hello <strong>World</strong></p>"), },} satisfies Dictionary;export default htmlDictionary;Node html()
Fungsi html() adalah fitur baru di Intlayer v8 yang memungkinkan Anda menentukan konten HTML secara eksplisit di kamus Anda. Meskipun Intlayer sering kali dapat mendeteksi konten HTML secara otomatis, penggunaan fungsi html() memberikan beberapa keuntungan:
- Keamanan Tipe: Fungsi
html()memungkinkan Anda menentukan props yang diharapkan untuk komponen kustom, memberikan pelengkapan otomatis dan pemeriksaan tipe yang lebih baik di editor Anda. - Deklarasi Eksplisit: Ini memastikan bahwa string selalu diperlakukan sebagai HTML, bahkan jika string tersebut tidak berisi tag HTML standar yang akan memicu deteksi otomatis.
- Definisi Komponen Kustom: Anda dapat memberikan argumen kedua ke
html()untuk menentukan komponen kustom dan tipe prop yang diharapkan.
Salin kode ke clipboard
import { html } from "intlayer";const myContent = html( "<MyCustomComponent title='Halo'>Dunia</MyCustomComponent>", { MyCustomComponent: { title: "string", children: "node", }, });Saat menggunakan metode .use() pada node HTML, komponen yang Anda berikan akan diperiksa terhadap definisi yang diberikan dalam fungsi html() (jika tersedia).
Merender HTML
Proses merender dapat ditangani secara otomatis oleh sistem konten Intlayer atau secara manual menggunakan alat khusus.
Perenderan Otomatis (menggunakan useIntlayer)
Saat Anda mengakses konten melalui useIntlayer, node HTML sudah disiapkan untuk dirender.
Node HTML dapat dirender langsung sebagai JSX. Tag standar bekerja secara otomatis.
Salin kode ke clipboard
import { useIntlayer } from "react-intlayer";const AppContent = () => { const { myHtmlContent } = useIntlayer("app"); return <div>{myHtmlContent}</div>;};Gunakan metode .use() untuk menyediakan komponen kustom atau menimpa tag:
Salin kode ke clipboard
{myHtmlContent.use({ p: (props) => <p className="prose" {...props} />, CustomLink: ({ children }) => <a href="/details">{children}</a>,})}Konfigurasi Global dengan HTMLProvider
Anda dapat mengonfigurasi rendering HTML secara global untuk seluruh aplikasi Anda. Ini ideal untuk mendefinisikan komponen kustom yang harus tersedia di semua konten HTML.
Salin kode ke 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>);Merender Manual & Alat Lanjutan
Jika Anda perlu merender string HTML mentah atau memiliki kontrol lebih atas pemetaan komponen, gunakan alat berikut.
Komponen <HTMLRenderer />
Merender string HTML dengan komponen tertentu.
Salin kode ke clipboard
import { HTMLRenderer } from "react-intlayer/html";<HTMLRenderer components={{ p: MyCustomP }}> {"<p>Hello World</p>"}</HTMLRenderer>useHTMLRenderer() Hook
Dapatkan fungsi renderer yang telah dikonfigurasi sebelumnya.
Salin kode ke 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>");Utilitas renderHTML()
Utilitas mandiri untuk merender di luar komponen.
Salin kode ke clipboard
import { renderHTML } from "react-intlayer/html";const jsx = renderHTML("<p>Hello</p>", { components: { p: 'div' } });Referensi Opsi
Opsi-opsi ini dapat diteruskan ke HTMLProvider, HTMLRenderer, useHTMLRenderer, dan renderHTML.
Buka tabel dalam modal untuk melihat semua isi data dengan jelas
| Opsi | Tipe | Default | Deskripsi |
|---|---|---|---|
components | Record<string, any> | {} | Peta dari tag HTML atau nama komponen kustom ke komponen. |
renderHTML | Function | null | Fungsi render kustom untuk menggantikan sepenuhnya parser HTML default (Hanya untuk provider Vue/Svelte). |
Catatan: Untuk React dan Preact, tag HTML standar disediakan secara otomatis. Anda hanya perlu meneruskan prop components jika ingin menimpanya atau menambahkan komponen kustom.