Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Maîtrisez useEffect en NextJS
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Développement

Maîtrisez useEffect en NextJS

L'Équipe Alphorm Par L'Équipe Alphorm 18 janvier 2025
Partager
10e lecture en min
Partager
Cet article fait partie du guide Guide Tutoriel Next.js : Apprenez à Créer des Projets Concrets, partie 8 sur 15.

Les développeurs Next.js rencontrent souvent des problèmes de gestion de dépendances avec le hook useEffect, ce qui peut entraîner des comportements inattendus et inefficaces dans leurs applications.

Une mauvaise gestion des dépendances ou des appels de données asynchrones peut créer des boucles infinies, ralentir le chargement, ou offrir une mauvaise expérience utilisateur.

Découvrez comment utiliser useEffect efficacement, gérer les appels de données JSON, et mettre en place des indicateurs de chargement pour optimiser les performances et l’expérience utilisateur dans vos applications Next.js.

Table de matière
Définir le tableau de dépendance avec useEffect en NextJSAppeler un fichier JSON avec useEffect en NextJSMettre en place un loading dans une application NextJSConclusion

Définir le tableau de dépendance avec useEffect en NextJS

Dans l’article précédent, nous avons tiré des expériences et bien pratiqué nos compétences acquises . Bah c’est super sympa non, et maintenant, nous allons continuer notre apprentissage en découvrant des nouvelles compétences. Dans cette partie, nous allons parler le hook useEffect en nextJS. Comme maitriser déjà en reactJS sa fonctionnalité mais faire un petit rappel me fait plaisir pour accentuer votre compréhension.

Donc maintenant, nous allons profiter un peu l’exercice que nous avons fait précédemment pour voir la fonctionnalité de useEffect.

Premièrement, déclarons le Hook useEffect dans le fichier app/page.js. Voici comment en déclarer dans ce fichier :

				
					useEffect(()=>{
console.log("ceci est grace à useEffect");
})
				
			

Voilà, nous avons déclaré un useEffect en y mettant un message dans la console. Parfait, lançons notre application maintenant et injecter la page pour découvrir la fonctionnalité que ce Hook useEffect en NextJS nous apporte si on apporte un évènement dans notre page.

Capture d'écran montrant l'utilisation de useEffect en NextJS avec un message de console affiché.

Voici à quoi ressemble notre application après son lancement et son chargement. Le message du useEffect s’affiche correctement au démarrage de l’application. De plus, si des événements sont ajoutés à la page, le nombre d’affichages augmente. Peu importe le type d’événement ajouté sur la page, le message est affiché.

Résultat après utilisation du hook useEffect dans React.

Vous voyez sur le visuel, nous avons tapé 5 fois la lettre a et du coup le message affiche 5 fois aussi apres lancement de l’application.

C’est normal car il n’y a pas encore de tableau de dépendances spécifié.

Ajoutons alors le tableau de dépendance comme paramètre de useEffect en NextJS pour gérer la dépendance de notre page.

				
					useEffect(()=>{
console.log("ceci est grace à useEffect");
},[])
				
			

Nous avons mis aucun élément d’abord dans le tableau de dépendance, Cela veut dire que le useEffect ne réagit à aucun évènement dans la page.

Exemple de code ajoutant un tableau de dépendance au hook useEffect en NextJS.

Formation Maîtriser les Fondamentaux de NextJS

Devenez expert en développement web dynamique avec NextJS et créez des applications performantes.

Découvrir cette formation
Blog IT sur la cybersécurité et la protection des données essentielles pour les entreprises

Comme vous pouvez le constater, même si nous avons ajouté une tâche via le formulaire, le message ne s’affiche qu’au chargement de l’application et ne prend pas en compte les autres événements sur la page.

Ajoutons maintenant par exemple le constat tasks ( le getter de notre useState pour la tache) dans le tableau de dépendance pour voir ce qui se passe.

				
					useEffect(()=>{
console.log("ceci est grace à useEffect");
},[tasks])
				
			

Et puis démarrons l’application maintenant.

Résultat de l'application après ajout d'une dépendance dans useEffect, montrant un message unique.

Après l’ajout d’une tâche, le message s’affiche correctement car le tableau de dépendances ne prend en compte que l’événement lié à l’ajout de la tâche.

NextJS

Explorez le potentiel du développement web avec NextJS

Découvrir cette formation
Logo de Next.js sur fond rose avec des icônes technologiques.

Appeler un fichier JSON avec useEffect en NextJS

Maintenant, approfondissons davantage cette compétence. Dans le quotidien d’un développeur, il est fréquent de manipuler des fichiers JSON ou d’autres sources de données. Ainsi, dans cette section, nous allons utiliser useEffect pour manipuler les données à partir d’un fichier JSON.

Pour commencer, nous allons configurer un fichier JSON pour notre application. Vous vous demandez peut-être où placer ce fichier ? Eh bien, c’est simple : créons-le dans le dossier public de notre projet sous le nom mesdonnees.json.

				
					{"message":"Bienvenu sur ce fichier","auteur":"Elon Musk"}
				
			

L’essentiel est simplement d’avoir des données dans un fichier JSON.

Maintenant, créons la fonction qui va appeler le fichier JSON. Pour ce faire, rendez-vous dans le fichier app/page.js.

				
					'use client'
import { useEffect, useState } from "react";
import styles from "./page.module.css";
export default function Home() {
const [datas,setDatas] = useState('');
let RecupJson=async()=>{
let result = await fetch('mesdonnes.json');
let dataJson = await result.json();
setDatas(dataJson);
}
useEffect(()=>{
RecupJson();
})
console.log(datas);
return (
<div className={styles.div}>
</div>
);
}
				
			

Nous avons épuré certaines lignes de code dans le fichier, en ne conservant que ce qui sera utile pour nous. Ensuite, nous avons mis en place la fonction appelée RecupJson, qui récupérera les données du fichier mesdonnees.json. De plus, nous avons déclaré le hook useEffect en NextJS pour gérer les événements sur la page, c’est-à-dire pour appeler la fonction RecupJson.

En lançant notre application, il nous donne comme ceci :

Code de la fonction RecupJson utilisant useEffect pour récupérer des données JSON en NextJS.

Si vous avez remarqué, l’affichage ne s’arrête pas, c’est comme une boucle infinie. C’est tout à fait normal car nous n’avons pas encore spécifié le tableau de dépendances dans le hook useEffect en NextJS. Corrigeons cela maintenant en ajoutant simplement le tableau de dépendances.

				
					useEffect(()=>{
RecupJson();
},[])
				
			

Et par la suite, notre données s’afficheront dans le console comme ceci :

Mettre en place un loading dans une application NextJS

Parfois, nous allons manipuler une tonne des données, et par conséquent, ça prend un peu du temps le chargement de ces donnés et l’utilisateur doit attendre pet être il ne sait pas que le chargement est en cours , du coup il est important de mettre un indicateur comme quoi le chargement est en cours ( loanding….).

Donc, maintenant nous allons implémenté cela pour rendre notre application robuste.

Pour faire cela, on a besoin de déclarer un autre useState pour le loanding et mettre une condition ternaire pour aussi gerer le temps de chargement , voyons comment en faire maintenant.

Dans le fichier app/page .js

				
					'use client'
import { useEffect, useState } from "react";
import styles from "./page.module.css";
export default function Home() {
const [datas,setDatas] = useState('');
const [load,setLoad] = useState(true);
let RecupJson=async()=>{
let result = await fetch('mesdonnes.json');
let dataJson = await result.json();
setDatas(dataJson);
setLoad(false);
}
useEffect(()=>{
RecupJson();
},[])
console.log(datas);
return (
<div className={styles.div}>
{
load?
(<p>loading.....</p>)
:(datas.message)
}
</div>
);
}
Premièrement, on a cette ligne de code :
const [load,setLoad] = useState(true);
				
			

Au début, la variable load, qui est un getter, est initialement définie sur true. Cette valeur sera changée à false une fois que les données seront prêtes dans la fonction RecupJson. Ensuite, dans notre div, nous avons une condition ternaire.

				
					{
load?
(<p>loading.....</p>)
:(datas.message)
}
				
			

Pendant le chargement des données, le message « Loading » est affiché. Une fois que les données sont prêtes, la valeur de la clé message est affichée dans le div.

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui. Découvrez des cours variés pour tous les niveaux !

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

Conclusion

En conclusion, maîtriser le hook useEffect en NextJS est essentiel pour tout développeur souhaitant créer des applications réactives et performantes. Grâce aux exemples présentés, vous avez appris à gérer les dépendances, éviter les boucles infinies et intégrer des données JSON de manière efficace.

 En appliquant ces techniques, vous pouvez améliorer considérablement la gestion des effets secondaires dans vos projets. N’oubliez pas d’expérimenter et d’adapter ces pratiques à vos besoins spécifiques pour tirer le meilleur parti de useEffect en NextJS.

 
 
Cet article fait partie du guide Guide Tutoriel Next.js : Apprenez à Créer des Projets Concrets, partie 8 sur 15.
< Formulaire Next.js : Ajout de TâchesExercice Next.js dans votre application >

ÉTIQUETÉ : NextJS
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Maîtrisez useEffect en NextJS

© Alphorm - Tous droits réservés