Recibe notificaciones sobre los próximos lanzamientos de Intlayer
    Creación:2024-08-11Última actualización:2025-06-29

    Obtención de Funciones

    Intlayer te permite declarar funciones de contenido en tus módulos de contenido, las cuales pueden ser síncronas o asíncronas. Cuando la aplicación se construye, Intlayer ejecuta estas funciones para obtener el resultado de la función. El valor de retorno debe ser un objeto JSON o un valor simple como una cadena o un número.

    Advertencia: la obtención de funciones actualmente no está disponible en la declaración de contenido JSON ni en archivos de declaraciones de contenido remoto.

    Declaraciones de Funciones

    Aquí tienes un ejemplo de una función síncrona simple que obtiene contenido:

    **/*.content.ts
    import type { Dictionary } from "intlayer";const functionContent = {  key: "function_content",  content: {    text: () => "This is the content rendered by a function",  },} satisfies Dictionary;export default functionContent;

    En este ejemplo, la clave text contiene una función que devuelve una cadena. Este contenido puede ser renderizado en tus componentes React utilizando los paquetes intérpretes de Intlayer como react-intlayer.

    Obtención de Funciones Asíncronas

    Además de las funciones síncronas, Intlayer soporta funciones asíncronas, lo que te permite obtener datos de fuentes externas o simular la recuperación de datos con datos simulados (mock).

    A continuación, se muestra un ejemplo de una función asíncrona que simula una obtención desde un servidor:

    **/*.content.ts
    import { setTimeout } from "node:timers/promises";import type { Dictionary } from "intlayer";const fakeFetch = async (): Promise<string> => {  // Espera 200ms para simular una obtención desde el servidor  return await setTimeout(200).then(    () => "Este es el contenido obtenido desde el servidor"  );};const asyncFunctionContent = {  key: "async_function",  content: { text: fakeFetch },} satisfies Dictionary;export default asyncFunctionContent;

    En este caso, la función fakeFetch simula un retraso para imitar el tiempo de respuesta del servidor. Intlayer ejecuta la función asíncrona y utiliza el resultado como contenido para la clave text.

    Uso de contenido basado en funciones en componentes React

    Para usar contenido basado en funciones en un componente React, necesitas importar useIntlayer desde react-intlayer y llamarlo con el ID del contenido para obtenerlo. Aquí tienes un ejemplo:

    **/*.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>      {/* Salida: Este es el contenido renderizado por una función */}      <p>{asyncFunctionContent.text}</p>      {/* Salida: Este es el contenido obtenido del servidor */}    </div>  );};export default MyComponent;

    Historial de Documentación

    • 5.5.10 - 2025-06-29: Historial inicial
    Recibe notificaciones sobre los próximos lanzamientos de Intlayer