Optimiser les requêtes de données pour React et React Query afin qu'elles se produisent uniquement lorsque le composant est dans la fenêtre d'affichage.
<p>J'ai une page qui utilise React pour afficher une liste de composants de publication, et pour chaque composant de publication, je reçois les commentaires liés à cette publication et les affiche à l'intérieur à l'aide de la bibliothèque React Query. Le problème est que lorsque l'utilisateur charge la page de publication, React Query charge tous les commentaires de toutes les publications en même temps, ce qui ralentit mon backend. </p>
<p>Je souhaite implémenter un mécanisme qui charge uniquement les commentaires lorsque l'utilisateur fait défiler vers une publication spécifique, au lieu de tout charger en même temps lors du rendu de la page. Comment y parvenir en utilisant React et React Query ? </p>
<p>Voici mon exemple de code actuel pour obtenir et afficher des commentaires : </p>
<p>Mon composant de publication</p>
<p>
<pre class="brush:js;toolbar:false;">importer React depuis 'react';
importer { useQuery } depuis 'react-query' ;
const PostComponent = ({ post }) =>
const {données, isLoading, erreur} = useQuery(
['commentaires', post.id],
() => récupérer les commentaires (post.id)
);
retour (
<div>
{/* Afficher votre composant de publication */}
{isLoading && <div>Chargement des commentaires...</div>}
{erreur && <div>Erreur lors de l'obtention des commentaires</div>}
{données &&
<div><p>{post.title}</p>
)}
</div>
);
};</pré>
</p>
<p>Composant Ma page de publication
<pre class="brush:js;toolbar:false;">importer React depuis 'react';
importer { useQuery } depuis 'react-query' ;
const PostsPage = () =>
const { data, isLoading, error } = useQuery('posts', fetchPosts);
retour (
<div>
{isLoading && <div>Chargement des messages...</div>}
{erreur && <div>Erreur lors de l'obtention des messages</div>}
{données &&
data.map((post) => (
<PostComponent key={post.id} post={post} />
))}
</div>
);
};</pré>
</p>