Recevez des notifications en avant-première sur les prochains lancements de Intlayer
    Création:2024-08-11Dernière mise à jour:2025-06-29

    Récupération par Fonction

    Intlayer vous permet de déclarer des fonctions de contenu dans vos modules de contenu, qui peuvent être soit synchrones, soit asynchrones. Lors de la construction de l'application, Intlayer exécute ces fonctions pour obtenir le résultat de la fonction. La valeur retournée doit être un objet JSON ou une valeur simple comme une chaîne de caractères ou un nombre.

    Attention : la récupération par fonction n'est actuellement pas disponible dans la déclaration de contenu JSON ni dans les fichiers de déclaration de contenu distant.

    Déclarations de Fonction

    Voici un exemple d'une fonction simple et synchrone récupérant du contenu :

    **/*.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;

    Dans cet exemple, la clé text contient une fonction qui retourne une chaîne de caractères. Ce contenu peut être rendu dans vos composants React en utilisant les packages interprètes d'Intlayer comme react-intlayer.

    Récupération de Fonction Asynchrone

    En plus des fonctions synchrones, Intlayer prend en charge les fonctions asynchrones, ce qui vous permet de récupérer des données depuis des sources externes ou de simuler la récupération de données avec des données factices.

    Voici un exemple d'une fonction asynchrone qui simule une récupération depuis un serveur :

    **/*.content.ts
    import { setTimeout } from "node:timers/promises";import type { Dictionary } from "intlayer";const fakeFetch = async (): Promise<string> => {  // Attendre 200ms pour simuler une récupération depuis le serveur  return await setTimeout(200).then(    () => "Ceci est le contenu récupéré depuis le serveur"  );};const asyncFunctionContent = {  key: "async_function",  content: { text: fakeFetch },} satisfies Dictionary;export default asyncFunctionContent;

    Dans ce cas, la fonction fakeFetch imite un délai pour simuler le temps de réponse du serveur. Intlayer exécute la fonction asynchrone et utilise le résultat comme contenu pour la clé text.

    Utilisation de contenu basé sur une fonction dans les composants React

    Pour utiliser un contenu basé sur une fonction dans un composant React, vous devez importer useIntlayer depuis react-intlayer et l'appeler avec l'ID du contenu pour récupérer ce contenu. Voici un exemple :

    **/*.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>      {/* Sortie : Ceci est le contenu rendu par une fonction */}      <p>{asyncFunctionContent.text}</p>      {/* Sortie : Ceci est le contenu récupéré depuis le serveur */}    </div>  );};export default MyComponent;

    Historique de la documentation

    • 5.5.10 - 2025-06-29 : Historique initial
    Recevez des notifications en avant-première sur les prochains lancements de Intlayer