Ajukan pertanyaan Anda dan dapatkan ringkasan dokumen dengan merujuk halaman ini dan penyedia AI pilihan Anda
Riwayat Versi
- "Rilis fitur konten dinamis"v9.0.012/6/2026
Konten halaman ini diterjemahkan menggunakan AI.
Lihat versi terakhir dari konten aslinya dalam bahasa InggrisIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Catatan Dinamis
Sebuah catatan dinamis (dynamic record) adalah file konten yang identitasnya bukan merupakan indeks berurutan atau varian bernama, melainkan kumpulan pasangan kunci-nilai arbitrer yang dideklarasikan dalam bidang meta. Intlayer menggunakan bidang-bidang tersebut sebagai selektor pada saat runtime, sehingga memungkinkan untuk merujuk pada catatan CMS, salinan khusus pengguna, atau konten apa pun yang kuncinya tidak diketahui pada waktu kompilasi.
Mendeklarasikan catatan dinamis
Salin kode ke clipboard
import { t, type Dictionary } from "intlayer";
const dictionary = {
key: "product-copy",
meta: {
id: "prod_abc",
userId: "user_123",
},
content: {
name: t({ en: "Widget Pro", fr: "Widget Pro" }),
description: t({ en: "The best widget.", fr: "Le meilleur widget." }),
},
} satisfies Dictionary;
export default dictionary;Salin kode ke clipboard
import { t, type Dictionary } from "intlayer";
const dictionary = {
key: "product-copy",
meta: {
id: "prod_abcd",
userId: "user_123",
},
content: {
name: t({ en: "Widget Lite", fr: "Widget Lite" }),
description: t({ en: "A lighter option.", fr: "Une option plus légère." }),
},
} satisfies Dictionary;
export default dictionary;Mengonsumsi catatan dinamis
Semua bidang meta adalah wajib dalam selektor. Mengabaikan bidang apa pun akan mengembalikan null dan merupakan kesalahan TypeScript.
Salin kode ke clipboard
import { useIntlayer } from "react-intlayer";
export const ProductCopy = ({
productId,
userId,
}: {
productId: string;
userId: string;
}) => {
const content = useIntlayer("product-copy", { id: productId, userId });
// TypeScript memastikan bahwa `id` dan `userId` telah disediakan.
if (!content) return null;
return <p>{content.description}</p>;
};Dengan lokalitas eksplisit
Salin kode ke clipboard
const content = useIntlayer("product-copy", { id: "prod_abc", userId: "user_123", locale: "id",});Kolom meta hilang — kesalahan pada waktu kompilasi
Salin kode ke clipboard
// Kesalahan tipe: `userId` hilangconst content = useIntlayer("product-copy", { id: "prod_abc" });Mode pemuatan (loading mode)
Catatan dinamis biasanya dimuat secara lambat (lazy loading). Tetapkan importMode pada kamus untuk mengontrol hal ini:
Salin kode ke clipboard
const dictionary = {
key: "product-copy",
importMode: "fetch", // atau "dynamic"
meta: { id: "prod_abc", userId: "user_123" },
content: { … },
} satisfies Dictionary;
export default dictionary;Lihat optimalisasi bundel untuk detail tentang mode static, dynamic, dan fetch.
Kasus penggunaan umum
- Salinan pemasaran per produk yang dikelola di CMS
- Konten khusus pengguna atau khusus akun
- Konten apa pun yang diidentifikasi oleh ID runtime buram