Zadaj pytanie i otrzymaj streszczenie dokumentu, odwołując się do tej strony i wybranego dostawcy AI
Historia wersji
- "Wydanie funkcji dynamicznej zawartości"v9.0.012.06.2026
Treść tej strony została przetłumaczona przy użyciu sztucznej inteligencji.
Zobacz ostatnią wersję oryginalnej treści w języku angielskimIf 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
Rekordy Dynamiczne
Rekord dynamiczny (dynamic record) to plik zawartości, którego tożsamość nie opiera się na sekwencyjnym indeksie ani nazwanym wariancie, lecz na dowolnym zestawie par klucz-wartość zadeklarowanych w polu meta. Intlayer używa tych pól jako selektora w czasie wykonywania programu, co umożliwia odwoływanie się do rekordów CMS, treści specyficznych dla użytkownika lub dowolnych danych, których klucze nie są znane na etapie kompilacji.
Deklarowanie rekordów dynamicznych
Skopiuj kod do schowka
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;Skopiuj kod do schowka
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;Używanie rekordów dynamicznych
Wszystkie pola meta są wymagane w selektorze. Pominięcie któregokolwiek z pól zwraca null i powoduje błąd TypeScript.
Skopiuj kod do schowka
import { useIntlayer } from "react-intlayer";
export const ProductCopy = ({
productId,
userId,
}: {
productId: string;
userId: string;
}) => {
const content = useIntlayer("product-copy", { id: productId, userId });
// TypeScript wymaga dostarczenia zarówno `id`, jak i `userId`.
if (!content) return null;
return <p>{content.description}</p>;
};Ze specyficzną lokalizacją
Skopiuj kod do schowka
const content = useIntlayer("product-copy", { id: "prod_abc", userId: "user_123", locale: "pl",});Brak pola meta — błąd na etapie kompilacji
Skopiuj kod do schowka
// Błąd typu: brakuje `userId`const content = useIntlayer("product-copy", { id: "prod_abc" });Tryb ładowania (loading mode)
Rekordy dynamiczne są zazwyczaj ładowane leniwie (lazy loading). Możesz to skonfigurować w słowniku za pomocą pola importMode:
Skopiuj kod do schowka
const dictionary = {
key: "product-copy",
importMode: "fetch", // lub "dynamic"
meta: { id: "prod_abc", userId: "user_123" },
content: { … },
} satisfies Dictionary;
export default dictionary;Szczegółowe informacje o trybach static, dynamic i fetch znajdziesz w sekcji optymalizacja paczek (bundle optimization).
Typowe przypadki użycia
- Teksty marketingowe produktów zarządzane przez CMS
- Treści specyficzne dla użytkownika lub konta
- Dowolna zawartość pobierana na podstawie nieprzezroczystego identyfikatora runtime ID