"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment intégrer un lien avec aperçu dans l'application React

Comment intégrer un lien avec aperçu dans l'application React

Publié le 2024-11-08
Parcourir:531

Introduction

Lors de la création d'une application Web, il est souvent utile d'afficher un aperçu du contenu d'un lien, comme la façon dont les plateformes de médias sociaux affichent des aperçus des liens lorsque vous partagez une URL. Ainsi, au lieu de simplement le texte de l'URL, vous pouvez également afficher des informations telles que des images et une description, à côté de l'URL.

Dans cet article, je vais vous guider à travers l'intégration de liens dans une application React, tout en récupérant les métadonnées Open Graph (telles que le titre, l'image et la description) à l'aide d'axios et de cheerio pour récupérer le code HTML de la page cible.

Nous allons créer un composant EmbeddedLink simple qui récupère et affiche les métadonnées Open Graph pour toute URL fournie.

Conditions préalables

Avant de commencer, assurez-vous que les éléments suivants sont installés :

  1. React – Configurez un projet React à l'aide de Create React App ou de toute autre méthode que vous préférez.
  2. Axios – Pour effectuer des requêtes HTTP.
  3. Cheerio – Pour analyser et gratter du HTML (une bibliothèque de type jQuery côté serveur généralement utilisée pour le scraping).

Vous pouvez installer Axios et Cheerio à l'aide des commandes suivantes :

npm install axios cheerio

Étape 1 : Création du composant EmbeddedLink

Nous allons créer un nouveau composant EmbeddedLink qui prend une URL comme accessoire et récupère les métadonnées Open Graph à partir de ce lien que nous utiliserons plus tard. Voici le code complet :

import React, { useState, useEffect } from 'react';
import axios from 'axios';
import cheerio from 'cheerio';

const EmbeddedLink = ({ url }) => {
    const [loading, setLoading] = useState(true);
    const [error, setError] = useState(null);
    const [imageUrl, setImageUrl] = useState('');
    const [title, setTitle] = useState('');
    const [description, setDescription] = useState('');

    useEffect(() => {
        const fetchOGData = async () => {
            try {
                const response = await axios.get(url, {
                    headers: {
                        'origin': 'https://mysite.com'
                    }
                });
                const html = response.data;

                // Parse HTML content using Cheerio
                const $ = cheerio.load(html);
                const ogImage = $('meta[property="og:image"]').attr('content');
                const ogTitle = $('meta[property="og:title"]').attr('content');
                const ogDesc = $('meta[property="og:description"]').attr('content');

                setImageUrl(ogImage || '');
                setTitle(ogTitle || '');
                setDescription(ogDesc || '');
                setLoading(false);
            } catch (error) {
                setError(error);
                setLoading(false);
            }
        };

        fetchOGData();
    }, [url]);

    if (loading) return 
Loading...
; if (error) return
Error: {error.message}
; return (
{imageUrl && {title}} {title &&

{title}

}
{!imageUrl && !title &&

No preview available

}

{description}

{url}

); }; export default EmbeddedLink;

Étape 2 : Utilisation du composant EmbeddedLink

Vous pouvez désormais utiliser le composant EmbeddedLink dans votre application React comme ceci :

import React from 'react';
import EmbeddedLink from './EmbeddedLink';

function App() {
    return (
        

Link Preview Example

); } export default App;

Cela affichera un aperçu de l'URL fournie, avec son image, son titre et sa description.

Gestion des erreurs et des états de chargement

Nous traitons les erreurs potentielles et les états de chargement en affichant les messages appropriés à l'utilisateur :

  • Pendant la récupération des métadonnées, un simple message "Chargement..." s'affiche ou vous pouvez utiliser un spinner d'animation ou autre.
  • Si quelque chose ne va pas pendant la récupération (par exemple, un problème de réseau), le message d'erreur s'affiche.

Conclusion

Lorsque vous avez terminé, vous devriez pouvoir voir le résultat comme sur l'image ci-dessous.

How to embed link with preview in React Application

Je préfère ce style de lien intégré dev.to, mais vous pouvez le styliser comme vous le souhaitez et préférez.

Déclaration de sortie Cet article est reproduit à: https://dev.to/basskibo/how-to-embed-link-with-preview-in-react-application-2gdd?1 S'il y a une contrefaçon, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3