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.
Avant de commencer, assurez-vous que les éléments suivants sont installés :
Vous pouvez installer Axios et Cheerio à l'aide des commandes suivantes :
npm install axios cheerio
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) returnLoading...; if (error) returnError: {error.message}; return ( ); }; export default 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 (); } export default App;Link Preview Example
Cela affichera un aperçu de l'URL fournie, avec son image, son titre et sa description.
Nous traitons les erreurs potentielles et les états de chargement en affichant les messages appropriés à l'utilisateur :
Lorsque vous avez terminé, vous devriez pouvoir voir le résultat comme sur l'image ci-dessous.
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.
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