Отримуйте сповіщення про майбутні випуски Intlayer
    Дата створення:2025-08-23Останнє оновлення:2025-08-23

    Отримання через функції

    Intlayer дозволяє вам оголошувати функції контенту в ваших контент-модулях, які можуть бути синхронними або асинхронними. Під час збірки застосунку Intlayer виконує ці функції, щоб отримати результат функції. Значення, що повертається, має бути JSON-об'єктом або простим значенням, таким як рядок або число.

    Увага: функціональне отримання контенту наразі недоступне в JSON-оголошеннях контенту та у віддалених деклараційних файлах контенту.

    Оголошення функцій

    Ось приклад простого синхронного отримання контенту за допомогою функції:

    **/*.content.ts
    import type { Dictionary } from "intlayer";const functionContent = {  key: "function_content",  content: {    text: () => "Це контент, який повертається функцією",  },} satisfies Dictionary;export default functionContent;

    У цьому прикладі ключ text містить функцію, яка повертає рядок. Цей контент можна відобразити у ваших React-компонентах за допомогою пакетів інтерпретатора Intlayer, таких як react-intlayer.

    Асинхронне отримання даних функцією

    На додаток до синхронних функцій, Intlayer також підтримує асинхронні функції, що дозволяє отримувати дані з зовнішніх джерел або імітувати отримання даних за допомогою мок-даних.

    Нижче наведений приклад асинхронної функції, яка імітує звернення до сервера:

    **/*.content.ts
    import { setTimeout } from "node:timers/promises";import type { Dictionary } from "intlayer";const fakeFetch = async (): Promise<string> => {  // Почекайте 200 мс, щоб симулювати запит до сервера  return await setTimeout(200).then(() => "Це вміст, отриманий із сервера");};const asyncFunctionContent = {  key: "async_function",  content: { text: fakeFetch },} satisfies Dictionary;export default asyncFunctionContent;

    У цьому випадку функція fakeFetch імітує затримку, щоб симулювати час відповіді сервера. Intlayer виконує асинхронну функцію і використовує результат як вміст для ключа text.

    Використання контенту на основі функцій у React-компонентах

    Щоб використовувати контент на основі функцій у React-компоненті, потрібно імпортувати useIntlayer з react-intlayer і викликати його з ідентифікатором контенту, щоб отримати вміст. Ось приклад:

    **/*.jsx
    import type { FC } from "react";import { useIntlayer } from "react-intlayer";const MyComponent: FC = () => {  const functionContent = useIntlayer("function_content");  const asyncFunctionContent = useIntlayer("async_function_content");  return (    <div>      <p>{functionContent.text}</p>      {/* Вивід: Це вміст, відрендерений функцією */}      <p>{asyncFunctionContent.text}</p>      {/* Вивід: Це вміст, отриманий із сервера */}    </div>  );};export default MyComponent;
    Отримуйте сповіщення про майбутні випуски Intlayer