Réagir des crochets de manière LA PLUS SIMPLE (avec le routeur de réaction v6, Axios, validation de formulaire et raccourcis ) | Code Bless You | Skillshare

Vitesse de lecture


1.0x


  • 0.5x
  • 0.75x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Réagir des crochets de manière LA PLUS SIMPLE (avec le routeur de réaction v6, Axios, validation de formulaire et raccourcis )

teacher avatar Code Bless You, Make Coding Easy To Learn

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Introduction

      0:50

    • 2.

      Qu'est-ce que les crochets ?

      1:04

    • 3.

      Crochet le plus important - useState

      8:21

    • 4.

      Manipuler des entrées multiples (raccourci)

      6:53

    • 5.

      useEffect en profondeur

      8:49

    • 6.

      Récupérer des données à l'aide d'AXIOS

      11:21

    • 7.

      useContext

      7:01

    • 8.

      useRef

      6:45

    • 9.

      useReducer

      7:27

    • 10.

      useLayoutEffect

      5:27

    • 11.

      utiliser Memo

      4:49

    • 12.

      useCallback

      5:08

    • 13.

      Crochets personnalisés (useFetch)

      4:03

    • 14.

      Validation de formulaire avec FORMIK & YUP

      18:26

    • 15.

      BONUS : Réagir le routeur v6

      11:33

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

284

apprenants

--

projets

À propos de ce cours

Apprenez tous les crochets React JS qui est le sujet le plus important dans React. Après avoir terminé ce mini cours, vous comprendrez React Hooks de manière beaucoup mieux .

CE QUE VOUS AVEZ BESOIN DE SAVOIR :

  • Réagir les bases seulement

SUJETS COUVERTS DANS CE COURS :

  • Qu'est-ce que les crochets ?
  • useState d'état avec toutes les méthodes
  • Manipulation de formulaires complexes en 2 lignes
  • useEffect en profondeur (Fiche de Cheatsheet gratuite)
  • Récupérer des données à l'aide d'Axios (Bibliothèque la plus populaire)
  • useContext (API de contexte)
  • useRef pour obtenir des éléments
  • useReducer Hook pour la gestion des États
  • useLayoutEffect
  • utiliser Memo
  • useCallback
  • Crochets personnalisés (useFetch)
  • Validation de formulaire à l'aide de Formik & Yup
  • beaucoup plus

Liens Importants Pour Ce COURS :

Je vais mettre à jour ce cours à "Le cours de maîtrise réagir ultime" en ajoutant des leçons régulièrement.

Rencontrez votre enseignant·e

Teacher Profile Image

Code Bless You

Make Coding Easy To Learn

Enseignant·e

Hi! I'm a passionate software engineer from Code Bless You and I love to teach about coding and general skills in less time. I've taught many people how to become professional software engineers.

My goal is to make coding fun for everyone. That's why my courses are simple, animated, and with practical implementation.

Learn by doing

Step-by-step tutorials and project-based learning.

Get support

One-on-one support from experts that truly want to help you.

don’t stress. have fun.

I can't wait to see you in class!

- Code Bless You

Voir le profil complet

Level: Beginner

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. Introduction: Bienvenue dans la classe de hook React. Dans ce cours, vous apprendrez tous les Hooks React dans un langage simple et facile à comprendre. Tout d'abord, nous verrons ce que sont les crochets et pourquoi nous en avons besoin. Après cela, nous allons commencer par le crochet le plus utile, qui est utilisé. Et d'autres crochets comme use effect, use context, etc. Nous verrons également la bibliothèque d'accès pour récupérer des données depuis l'API, gérer les paumes, une validation et bien plus encore. Après avoir terminé ce cours, je vais vous donner un projet, qui est le suivi des prix de la crypto-monnaie. Vous trouverez toutes les instructions dans la section projet. Je suis très enthousiaste à propos de ce cours et j'espère que vous l'êtes aussi. Commençons donc. 2. Qu'est-ce que les crochets ?: Avant de plonger dans le crochet usté, comprenons d' abord, qu'est-ce que les crochets ? Si vous le savez déjà, vous pouvez sauter cette partie et sauter directement sur le crochet. Alors, qu'est-ce que les crochets ? Les hooks sont les fonctions permettant d'utiliser certains prédicateurs React dans les composants fonctionnels. En d'autres termes, nous pouvons dire que les hooks sont des fonctions qui font fonctionner les composants fonctionnels comme les composants de classe. Je sais que cela semble compliqué, mais ce n'est pas le cas. Comprenons avec une histoire. Avant que React lance des crochets. n'existe qu'une seule façon d'utiliser les méthodes d'état et de cycle de vie à l'aide des composants de classe. Les développeurs ont eu quelques problèmes avec les composants en verre. Prenez donc le temps de développer des fonctions spéciales que nous pouvons utiliser dans les composants fonctionnels et que les fonctions spéciales sont appelées crochets. Je pense donc maintenant que vous comprenez ce que sont les Hooks React, qui sont des fonctions qui font fonctionner les composants fonctionnels des composants de classe live. Commençons par notre premier crochet, qui est utilisé. 3. Crochet le plus important - useState: Qu'est-ce qui est utilisé ? Il l'a utilisé hook est une fonction pour ajouter de l'état dans un composant fonctionnel. Maintenant, vous pouvez vous demander ce qu'est l'état ? L'état n'est donc rien que des valeurs ou des variables de votre composant. En d'autres termes, toutes les variables votre composant sont appelées en tant qu'état du composant. Chaque fois que vous voulez créer une variable, vous devez utiliser le hook usted, aussi simple que cela. Comprenons avec l'exemple. Ici, j'ai une nouvelle application React et j'ai supprimé tous les fichiers inutiles de celle-ci. Laissez-moi d'abord créer un composant fonctionnel à l' aide d'un FCE. Il s'agit de l'image permettant de créer les composants fonctionnels. Mais vous devez d'abord installer cette extension ESL et React. J'ai adoré cette extension. Cela augmente ma productivité dans React. Maintenant, je vais créer un compteur simple, affiche la valeur du compteur et un bouton appelé en Grèce. Lorsque nous cliquons sur ce bouton, la valeur du compteur augmente d'une unité. Maintenant, c'est ici que je veux afficher la valeur du compteur. Nous avons besoin de l'État. Et c'est là que nous utilisons, nous l'avons utilisé avec des crochets. Pour utiliser n'importe quel crochet. abord, nous devons l' importer à partir de bibliothèque React, juste ici, usted. Ok, ici nous allons vous appeler fonction d'état. Et nous donnons à notre compteur une valeur initiale de 0. Maintenant, cette fonction va retourner un tableau. Consolidons-nous donc. Voir. Cette zone comporte deux éléments. Le premier élément est notre valeur d'origine, qui est 0, et le second élément est une fonction. Nous allons donc faire ce premier élément dans la variable compteur et affiché ici en utilisant des accolades. Enregistrez les modifications, et jetez un œil, nous récupérons notre compteur. Maintenant, le deuxième élément de ce tableau renvoie une fonction. En utilisant cette fonction, nous pouvons mettre à jour nos valeurs d'état. Stockons donc cet élément dans une variable appelée compteur d'état. Maintenant, quelle que soit la valeur que nous passons dans cette fonction, elle sera la valeur de cette variable de compteur. Laisse-moi te le montrer. Ici. Nous voulons augmenter le compteur d'une unité. Lorsque nous cliquons sur ce bouton, Ajouter une fonction dans OnClick augmenter le compteur. Nous devons maintenant définir cette fonction. Et à l'intérieur de cette fonction, nous écrivons set counter. Quelle est la valeur connue, qui est un compteur plus un. Sauvegardez-le et jetez un œil. Tu vois, ça fonctionne. Et lorsque nous actualisons la page, elle recommence par 0, que nous transmettons dans cette fonction de votre état. Maintenant, notre code est un peu moche. Nous utilisons donc toujours le raccourci pour ces trois lignes, appelé Modifier la restructuration. Ici, à la place de Los Angeles, ajoutez des crochets. Et à l'intérieur, à droite, le nom de la variable post, qui est compteur, puis write function name, qui est le compteur défini. Nous n'avons pas besoin de ces deux lignes. Cela fonctionne de la même manière qu'auparavant. Et notre code a l'air propre. Et vous pouvez utiliser plusieurs crochets ustés dans un seul composant. Voyons maintenant comment nous pouvons utiliser l'État américain pour obtenir de la valeur à partir de l'entrée. Nous allons donc créer une entrée avec un texte de type. Ici, nous devons gérer l'événement onchange. Et nous passons l'exploration d'une fonction flèche. Et nous utilisons la valeur du point cible pour mettre à jour la variable d'état. Donc le type l'a utilisé ici. Et ici, nous pouvons donner la valeur initiale de notre variable, dans ce cas une chaîne vide. Maintenant, chaque fois que la valeur de ce champ d'entrée change, nous appelons la fonction setName et la valeur du point cible bass e dot. Nous appelons setName et transmettons cette valeur. Maintenant, changeons notre étiquette en nom de variable, a cliqué sur. Temps de compteur variables, enregistrez les modifications et jetez un œil. Ici, nous avons une zone de texte et quand nous écrivons le nom gold, il est immédiatement mis à jour ici et aussi contre les mises à jour onclick. Voyons maintenant comment utiliser le hook usted lorsque nous avons object comme variable d'état. Nous créons donc ici deux variables d'état qui sont counter et name. Nous pouvons maintenant faire de même avec une variable d'état, qui est object. Créez donc un nouveau usted et passez l'objet en tant que compteur de valeur initiale à 0 et chaîne vide name2. Définissez maintenant son nom à l'aide des options Modifier les détails de la restructuration et les détails des ensembles Supprimez maintenant ces deux lignes. Nous n'en avons pas besoin. Au lieu d'écrire un nom, c'est ça ? Détails du nom du point et détails du compteur de points. Ici, dans la fonction de compteur d'augmentation, je supprime cela et devine ce qu'il faut ajouter ? C'est vrai ? Nous devons ajouter une fonction de définition des détails pour mettre à jour cette valeur de compteur. J'écris donc les détails du site. Et n'oubliez pas, quelle que soit la valeur que vous passez dans cette fonction, elle sera mise à jour avec la valeur d'origine. Donc compteur d'objets, Carlin détaille le compteur de points plus un. Sauvegardez-le et jetez un œil. Ouaip, ça marche. Mais il y a un gros problème : nous n' avons pas notre élément name dans cet objet. Laisse-moi te le montrer. J'écris donc simplement ici les détails de console.log et je les enregistre. Actualisez maintenant la page et voyez comment deux éléments dans l'objet. Maintenant, lorsque je clique sur ce bouton agrandi, l'élément name est supprimé de notre objet. Alors pourquoi cela se produit-il ? Cela se produit parce que nous passons directement l'objet sans ajouter d'autres anciennes valeurs. La solution est donc abord d'ajouter toutes les autres valeurs de ce nom d'objet ici et de mettre à jour cet élément de compteur avec une nouvelle valeur. Donc, à l'intérieur de la fonction details, nous pouvons passer une autre fonction et cette fonction peut renvoyer la valeur précédente de nos variables d'état. Ne t'embrouille pas juste pour voir ça. Donc, ces variables précédentes sont identiques à celles de cette variable de détails. Permettez-moi de vous montrer que ma console et d'ajouter du texte ici. Vous voyez, nous obtenons toutes les valeurs lorsque nous cliquons sur ce bouton avec une erreur car nous ne pouvons pas écrire de console dans dysfonction. Alors enlève ça. Et maintenant, nous utilisons l'opérateur d' étalement en utilisant trois points précédents. Cela ajoutera toutes les valeurs précédentes de la variable d'état. Maintenant, nous remplaçons counter par l'ancienne valeur, qui est le compteur de points précédent plus un. Enregistrez les modifications et jetez un œil. Vous voyez qu'il fonctionne parfaitement avec l'élément name. Ainsi, chaque fois que vous travaillez avec un objet ou un tableau, nous devons d'abord ajouter toutes les valeurs précédentes en utilisant cette méthode, puis mettre à jour ce que nous voulons mettre à jour. Récapitulons ce que nous avons appris. Usted est donc utilisé pour créer des variables d'état dans des composants fonctionnels. Donc, pour utiliser le hook usted, nous devons d'abord l'importer et l' utiliser dans le composant fonctionnel. Ici, vous pouvez transmettre n'importe quel type de données comme des données booléennes, nombres, du texte, des objets, puis les stocker à l'aide de la restructuration AddEdge. La première variable est sa valeur actuelle. Et le second est la fonction de notre élevage de cette valeur. est aussi simple que ça. Certaines personnes peuvent être un peu confuses ici. Et j'ai également été confuse quand j'ai appris qui pour la première fois. Mais avec la pratique, j'ai appris ce concept et je l'ai utilisé dans mes projets. 4. Manipuler des entrées multiples (raccourci): Voyons comment gérer plusieurs entrées uniques sur le gestionnaire dans React C'est très utile lorsque vous avez plusieurs champs de saisie, comme le formulaire d'inscription. Dans le tutoriel de l'USDA, nous voyons comment gérer un ou deux champs de formulaire. Mais imaginez que vous ayez cinq à six champs et que vous créiez une variable d'état pour chaque entrée, ce qui rend notre code compliqué et difficile à gérer. Voyons donc comment gérer plusieurs entrées à l'aide d' une seule fonction OnChange. Ici, nous avons appuyez sur le composant F. Et ce composant, je veux prendre les détails de l'utilisateur tels que le nom, e-mail, le mot de passe et l'adresse. Nous allons donc créer un formulaire. Je sais que certains développeurs n'utilisent pas cette balise de formulaire pour créer directement des éléments d'entrée, mais ce n'est pas une bonne pratique. Maintenant, dans ce formulaire, je veux une balise S3 et un texte de type de saisie de nom de passe. Maintenant, je duplique ce code trois fois de plus en utilisant la flèche vers le bas C Plus Plus et en changeant deuxième pilule comme e-mail et en saisissant par e-mail. Ensuite pour mot de passe et tapez mot de passe. Et le dernier, c'est l'adresse. Et pour cela, nous avons besoin d'une zone de texte. Je supprime donc cette balise de saisie et crée une zone de texte. Et à la fin, nous avons besoin d'un bouton, tapez submit, et nommez-le submit form. Maintenant, enregistrez les modifications et jetez un coup d'œil. Tu vois, nous recevons notre formulaire avec toutes les pilules. Dans la leçon précédente, nous créons des entrées de variables d'état individuelles. Ensuite, dans onchange, nous définissons cette valeur sur notre variable d'état. Mais dans cette méthode, nous ne créons qu'une seule variable d'état pour tous les champs de saisie. Si vite, j'importe usted depuis la bibliothèque React. Et dans notre composant fonctionnel, nous utilisons usted et le déstructurons comme des détails et des détails d'ensemble. Maintenant, je veux passer un objet et cet objet, nous avons plusieurs champs comme nom et sa valeur initiale sous forme de chaîne vide, e-mail, chaîne vide, mot de passe, chaîne vide. Et le dernier, adresse une chaîne vide. Créons maintenant notre fonction de changement de poignée. Et nous appellerons cette fonction sur chaque événement onchange input. Donc ici j'écris sur change et passe handle change function. Copiez-le et collez-le dans tous les champs. Ainsi, chaque fois que nous saisissons l'un de ces champs, seule cette fonction sera exécutée. Maintenant, étape la plus importante, et sans cette étape, Notre, cette méthode ne fonctionnera pas. L'étape consiste donc à ajouter le nom de toutes les pilules en tant qu'attribut name d'entrée de notre objet d'état. Laisse-moi te montrer ça. Ainsi, pour la saisie de nom, nous voulons stocker sa valeur d'entrée dans cette propriété name. Nous ajoutons donc l'attribut name égal à name. Maintenant, pour l'e-mail, nous voulons définir cette valeur e-mail dans cette propriété d'e-mail. Nous ajoutons l'attribut de nom d'entrée e-mail à l'e-mail. Maintenant, pour le mot de passe, le nom est égal au mot de passe et à l'adresse du port. Nous passons le nom est égal à l'adresse. Assurez-vous d'écrire le même nom que celui que vous écrivez dans cet objet. Maintenant, à l'intérieur de cette fonction de changement de poignée, nous écrivons notre logique principale. J'utilise donc ce e comme objet d'événement pour toutes ces pilules. Et nous allons consoler la cible point. Sauvegardez-le et jetez un œil. Vous voyez, quand nous saisissons notre nom, nous obtenons cette entrée de nom. Et lorsque nous saisissons une autre entrée, nous obtenons cette entrée. Donc, notre logique est que lorsque nous tapons dans le champ de saisie, nous obtenons le nom et la valeur du fichier d'entrée. Et avec ce nom, qui sera le même que nos propriétés d'objet de détails, nous remplacerons sa valeur par la valeur actuelle. Je sais que cela semble compliqué, mais ce n'est pas le cas. Voyons voir ça. Et après cela, tous les doutes disparaîtront. Je crée une variable de nom pour le nom du point cible du point E et une variable de valeur pour la valeur du point cible du point E. Consolons les deux variables. C. Nous obtenons FullName et sa valeur lorsque nous saisissons ces champs de saisie. Il ne nous reste plus qu'à définir cette valeur dans notre variable d'état. Laissez-le faire son nom. Donc, les détails du côté droit. Et dans la fonction de rappel, nous passons le paramètre précédent, quelle valeur précédente ? Donc tout d'abord, nous retournons toutes les valeurs précédentes en utilisant l'opérateur spread. Nous devons maintenant mettre à jour la propriété avec cette valeur. Nous savons donc que nous pouvons accéder à la propriété de l'objet en utilisant des crochets et en passant cette variable de nom à l'intérieur et deux-points sa valeur. Donc, si nous écrivons quelque chose dans une entrée de courrier électronique, cela retournera d'abord toutes les propriétés précédentes. Ensuite, nous trouvons l' e-mail de la propriété et remplaçons sa valeur par ce symbole de valeur de champ d'e-mail. Supprimons le solo de cette variable de données et voyons si nous obtenons des valeurs non. Enregistrez donc les modifications et jetez un œil. Quand nous mettons à jour un champ, nous obtenons sa valeur dans notre objet d'état. Maintenant, nous pouvons même trier ce code en utilisant la destruction d'objets. J'écris la cible de point E et en utilisant la structuration des données d'objet, nous stockons le nom et la valeur dans une variable. Donc ces deux lignes, identiques à cette ligne. J'ai donc supprimé ces deux lignes. Maintenant, je souhaite consulter cet objet Détails lorsque nous cliquons sur le bouton Soumettre. Je crée donc une nouvelle fonction appelée handle submit et gère tous ces objets de détails. Maintenant, dans la balise de formulaire onsubmit event, nous appelons cette fonction. Maintenant, enregistrez les modifications et jetez un coup d'œil. Permettez-moi d'écrire tous les détails. Ensuite, je clique sur le bouton Soumettre. Tu vois, pendant seulement 1 seconde, c'est imprimé. Ensuite, notre formulaire est refoulé parce que c'est le comportement par défaut de form. Chaque fois que nous soumettons le formulaire, cette fonction s'exécute puis elle supprime la page. Nous devons donc arrêter ça. Nous utilisons ce e comme objet d'événement et écrivons la fonction par défaut E point prevent. Cela empêchera le comportement par défaut de palm. Enregistrez donc les modifications et jetez un œil. Vous voyez, nous obtenons des détails dans la console. Dans ton projet. Vous pouvez appeler l'API dans cette fonction et envoyer tous les détails au serveur. J'espère donc que cette méthode vous plaira. Si vous avez la moindre confusion. Ce tutoriel était-il une fois de plus. Et essayez d'appliquer cette méthode à votre projet qui dissipera vos doutes. 5. useEffect dans la profondeur: Utilisez la cheville est utilisée pour effectuer des effets secondaires dans notre composant. Quels sont donc les effets secondaires ? Les effets secondaires, nos actions qui sont effectuées avec le monde extérieur. Nous effectuons un effet secondaire lorsque nous avons besoin faire quelque chose en dehors des composants de React. Quel exemple, récupérer des données depuis l'API, mettre à jour directement le DOM dans lequel nous utilisons un objet de document ou de fenêtre, et des fonctions de minuterie comme setTimeout ou set interval. Ce sont les effets indésirables les plus courants sous React. Donc, pour effectuer tout type d'effets secondaires, nous devons utiliser, utiliser l'effet Hooke. Voyons un exemple. Ici. J'ai créé une variable d'état et sa valeur augmentera d'une unité. Lorsque nous cliquons sur ce bouton pour utiliser n'importe quel hook, nous devons d'abord importer des données depuis la bibliothèque React. J'écris donc ici, utilise effect, et maintenant nous pouvons l'utiliser dans le composant fonctionnel. Utilisez donc un vecteur à l'exception de deux arguments. Callback, qui est une fonction dans laquelle nous écrivons notre logique d'effets secondaires. Cette fonction est exécutée chaque fois que quelque chose se trouve dans ce composant. Ensuite, les dépendances, qui sont une zone de variables et c'est un argument facultatif. En termes simples, le premier argument est ce qu'il faut exécuter, et le second est quand exécuter. L'effet utilisateur s'exécute sur chaque rendu, ce qui signifie que lorsque le décompte change ou lorsque cela se produit, nous pouvons le contrôler par des dépendances. Si vous êtes familier avec les composants de classe, l'effet d'utilisation est une combinaison du composant a monté, mise à jour des données du composant et du composant sera monté. Voyons la variation des crochets d'effet d'utilisation qui ne sont que trois variations du vecteur utilisateur. abord, utilisez-le sans aucune dépendance. Deuxièmement, l'effet utilisateur avec un tableau vide et le troisième utilisateur avec des variables. Voyons la première variante du hook vectoriel utilisateur. Bon ? Utilisez-le et passez uniquement la fonction de rappel. Et dans cette fonction, je souhaite mettre à jour le titre de notre site Web avec la même méthode. Donc, le titre du point du document est égal à deux en backticks, compte dollar nouveaux messages et enregistrez-le. Actualisez la page et voyez chaque fois que ce composant s'affiche, utilisez si x r1 et que notre titre est mis à jour avec notre message. Maintenant, quand quelque chose change ce composant, nous cliquons sur ce bouton et il utilise un livre vectoriel intitulé change avec compteur. Ainsi, lorsque nous utilisons user back pour accrocher sans aucune dépendance, use effect s'exécutera à chaque modification de ce composant. Dans ce cas, il s'agit d'un composant d'application car nous aurions un effet d'idées dans le composant de l'application. Voyons maintenant utiliser l'effet avec un tableau vide. Donc, dans ce même exemple, nous passons un tableau vide de dépendances de faits d'utilisateur final. Et voyons ce qui s'est passé. Alors enregistrez-le et jetez un coup d'œil, rafraîchissez la page, et voyez-nous si Exelon lors du rendu des composants. Maintenant, lorsque nous cliquons sur ce bouton, signifie que le compteur va changer, mais le titre ne fonctionne pas sur ce changement. Lorsque nous passons un vide aux indépendances, use effect ne s'exécutera qu'une seule fois. Quand notre composant est rendu pour la première fois. Après ça, on ne s'enfuira plus. C'est utile lorsque nous avions l'habitude de récupérer des données à partir d'une API ou serveur qui récupéraient des données lors du premier rendu du composant. En passant, le crochet est disponible dans la description. Voyons maintenant la dernière variation de l'effet utilisateur, quelles variables. Donc pour comprendre ce concept, je crée un autre nom de variable d'état ou le bouton Compte qui augmentera celui contré par Phi. Maintenant, je veux changer de titre lorsque nous ne changeons d'autres états de comptage ou que nous devons passer une autre variable de compte dans cette dépendance LA. Et je change cette variable de compte avec un autre compte. Enregistrez les modifications et jetez un coup d'œil, actualisez la page et constatez qu'elle fonctionne parfaitement sur Render. Maintenant, lorsque je clique sur cette autre variable d'état de compte, titre est mis à jour avec cette bande. Mais lorsque nous cliquons sur cet ancien bouton, cela ne fonctionnera pas car nous passons notre nouveau tableau d' indépendance de variable. Donc, utilisez-le uniquement lorsque la valeur de ces variables d'état changera et vous pouvez passer plus de variables en utilisant une virgule. Maintenant, la dernière partie de ce hook d'effet d'utilisation est la fonction de nettoyage. Et c'est un peu déroutant pour les débutants. Comprenons avec un autre exemple. Pour que tout le monde puisse comprendre. Ici, j'ai utilisé fonction setInterval appelée compte à rebours. Cet intervalle ne s'arrêtera pas tant que nous n'utiliserons pas la fonction clear interval. Si nous définissons l'état à l'aide de setInterval et que cet effet secondaire n'est pas nettoyé lorsque nos composants sont sur des monticules, ou si nous ne voulons plus l'utiliser, l'état est détruit avec le composant, mais la fonction d'intervalle d'échange continue-t-elle de fonctionner ? De ce fait, nos applications lentes et peu performantes. Il est donc important de nettoyer ces fonctions. Donc, pour utiliser la fonction de nettoyage, nous devons exécuter la fonction écrite dans l'effet d'utilisation. Laissez-moi vous le montrer ici. Dans cette utilisation, si je l'avais fait, j'aurais écrit la fonction flèche. Et à l'intérieur de cette fonction, iodure efface l'intervalle et passe le nom de variable fonction setInterval, qui est timer. Maintenant, la fonction de nettoyage sera appelée lorsque le composant est démonté. C'est difficile à voir dans cet exemple, j'ai créé un compteur, puis j'ai mis à jour ce compteur sur ButtonClicked by one. Maintenant, je crée une nouvelle fonction vectorielle utilisateur qui compte la dépendance et écrit console.log autour de l'effet avec la variable count. Donc, lorsque la variable count changera, l'utilisateur s'exécute et maintenant j' écris la fonction return. À l'intérieur de cette fonction, je console simplement le nettoyage du journal des points. Également avec variable count. Nous commençons juste à comprendre quand la fonction de nettoyage fonctionnera. Enregistrez donc les modifications et jetez un coup d'œil, actualisez la page, et elle fonctionne après le rendu. Maintenant, chaque fois que ceux-ci sont utilisés, si je pouvais les exécuter, encore une fois, toutes les fonctions de nettoyage seront suspendues, puis cette fonction de rappel s'exécutera. Voyons cette diapositive. Ici, il s'agit du rendu proposé. Et quand nous cliquons sur ce bouton augmenté, cela signifie que cet utilisateur va courir jusqu'à ce que le nettoyage avec la valeur 0 s'exécute. Et puis la fonction de rappel print pour la valeur un. Encore une fois, nous cliquons sur ce bouton, la fonction de nettoyage précédente s' exécutera , puis appellera l'arrière-plan. La fonction de nettoyage n'est donc pas requise dans tous les cas. Elle n'est requise que dans quelques cas, par exemple lorsque vous devez arrêter un effet secondaire répété lorsque votre composant est monté. est aussi simple que ça. Récapitulons. Ce que nous avons appris. J'utilise l'effet est utilisé pour effectuer des effets secondaires tels que manipulation de données de correctif avec un document et une fenêtre. Les événements de minuterie tels que SetInterval et SetTimeout. Utilise-le. Acceptez deux arguments. Le coût est par fonction de rappel et le second est pour les dépendances, ce qui est facultatif en termes simples, ce qu'il faut exécuter et quand l'exécuter. Il existe trois variantes d'utilisation si je me débrouille sans dépendances, ce qui signifie qu'il fonctionne avec le post-rendu et fonctionne également sur tout changement dans ce composant. Ensuite, avec un tableau vide, ce qui signifie qu'il ne s'exécute qu'après le rendu et qu'il est utile pour corriger les données. Troisièmement, state et props, ce qui signifie qu'il s'exécute après le rendu. Et puis toutes les variables que nous transmettons changent d'indépendance. Cela fonctionnera aussi simplement que cela. délais d'attente, les abonnements, l'écouteur d'événements et les autres effets qui ne sont plus nécessaires doivent être éliminés à l' aide de la fonction de nettoyage. 6. Récupérer des données à l'aide d'AXIOS: Dans ce tutoriel, nous allons apprendre ce que sont les ICO, pourquoi nous avions besoin de transmettre des données en utilisant certaines erreurs à éviter. Et mon truc préféré pour utiliser les axiomes dans React, gros un tutoriel complet sur zOS. Alors ne perdons pas de temps et lançons-nous. Tout d'abord, qu'est-ce qu'Axioms ? Axiom est un package utilisé pour faire une requête HTTP à partir du navigateur d'une manière simple et améliorée patch en JavaScript, nous pouvons dire qu'axioms est la version mise à jour de celui-ci car XES fournit de meilleures fonctionnalités Requête HTTP, près de 70% des utilisateurs utilisent x equals pour effectuer des requêtes HTTP pour le back-end comme NodeJS. Voici quelques avantages de l'utilisation d'un système d'exploitation dans React. Si vous utilisez la méthode Bayes, nous devons d'abord transmettre les données au format JSON , puis nous pouvons les utiliser. Mais SEoS utilise par défaut le format jason, ce qui signifie que X ans convertit automatiquement les données au format JSON lorsque nous obtenons des données du serveur. C'est pourquoi nous n'avons besoin que d'une seule méthode then. Cela rend notre code propre et facile à comprendre. Seo's fournit tous les types de méthodes HTTP telles que GET, post, PUT, elite et bien d'autres. Nous pouvons faire mieux en matière de manipulation en utilisant x ans. C'est donc beaucoup pour les théories. Voyons maintenant comment utiliser XES dans un réactif. Ici, je crée une nouvelle application React et je supprime tous les fichiers inutiles. Rendez-vous maintenant sur Damages et .com. C'est l'une de mes API préférées pour les tests. Ici, nous pouvons lire sa documentation si vous le souhaitez. Faites maintenant défiler vers le bas jusqu'à Ressources. Et ici, vous pouvez voir différentes données telles que les détails du produit , les gardes, les utilisateurs, la publication, etc. Maintenant, vous ne verrez peut-être pas ces données au format JSON comme celui-ci, car j'utilise ce format ou extension JSON. C'est un outil très pratique pour voir les données JSON dans le navigateur. Vous allez l'installer depuis le Chrome Web Store. Ici, nous pouvons obtenir les données factices des produits à partir de cette API. Nous utilisons XES pour appeler l'API et afficher ces données à l'aide de la méthode map. Alors tout d'abord, ouvrez les zéros comme dans NPM, et voyez qu'il a 2,4 millions de téléchargements hebdomadaires, ce qui est insensé. Copions donc cette commande npm et collez-la dans VS Code Terminal et appuyez sur Entrée. Il est donc installé avec succès. Nous pouvons le vérifier par le fichier package.json C. Nous obtenons x années d'indépendance. Maintenant, je ferme ce fichier et dans app.js, pendant que j'importe des axes depuis x equals package. Nous pouvons donc utiliser des zéros dans ce composant. Ici, je veux transmettre des données sur les composants rendus la première fois dont nous avons besoin, non ? C'est un effet usé. J'écris donc use effect. Et le premier argument est la fonction de rappel. Le deuxième argument est un tableau de dépendances. Je voulais donc simplement transmettre des données une fois. Lorsque les composants sont rendus, je passe un tableau vide sans aucune dépendance. Maintenant, dans la fonction de rappel, nous récupérons les données de l'API. Supposons à droite, point x ici nous tapons méthode comme GET, post, PUT, delete. Alors je l'écris. Maintenant, dans cette parenthèse, nous passons l'API. Je copie donc cette API et je la colle ici. Pareil à la méthode fetch. Nous les utilisons et utilisons la fonction flèche et passons la réponse en tant que paramètre. Puis console cette variable de réponse pour voir ce que nous obtenons. Enregistrez donc les modifications et jetez un œil. Nous obtenons donc un objet avec la configuration, les données, le code d'état, etc. Dans l'objet de données, nous obtenons les produits. Nous devons donc stocker ce tableau dans la variable d'état. Revenons donc à VS Code, et en haut, je crée une variable d'état appelée products et passe un tableau vide comme valeur initiale et j'importe le hook usted de React. Maintenant, dans ce cas, nous utilisons produits secondaires et des produits point response.data. Nous obtenons maintenant la valeur de ce produit dans la variable du produit. Par écrit, nous affichons le nom du produit et son prix. Donc, entre accolades, carte de points de produits. Et à l'intérieur de cela, nous passons la fonction de rappel et passons paramètres tels que product pour un produit et un index individuels. Oubliez la valeur d'indice de ce produit actuel et renvoyez la balise h3. Et à l'intérieur, nous passons entre parenthèses, titre du point du produit et le dollar, le prix du produit. Et nous passons l'indice en tant que valeur clé. Maintenant, enregistrez les modifications et jetez un œil. Vous voyez, nous obtenons les noms de produits avec leur prix. Vous pouvez ajouter vos styles et les rendre plus cool. Pour l'instant, je suis d'accord avec ces tuiles parce que nous apprenons des axiomes. Et c'est notre objectif principal. Vous verrez donc à quel point il est facile et simple de faire une requête HTTP. Maintenant, si vous voulez faire une demande de publication, vous devez simplement enchaîner cette méthode à la publication et aux gènes supérieurs à 0,48. Ensuite, si nous voulons envoyer des données, vous pouvez passer cette variable comme deuxième paramètre après l'API, c'est aussi simple que cela. Je vais vous donner tous les types de méthodes, des exemples dans mon XES Ultimate Guide. Vous pouvez le télécharger depuis la boîte de description. Voyons maintenant comment gérer les erreurs à l'aide d'un système d'exploitation. Donc, après ces dix méthodes, nous écrivons la méthode cash. Cette méthode ne s'exécutera que lorsque quelque chose ne va pas. Dans cette méthode, nous pouvons dire que si une erreur se produit seulement alors, la méthode de ces gars s'exécutera. Nous passons donc l'erreur en tant que paramètre et consolons cette variable d'erreur. Maintenant enregistrez-le et jetez un coup d'œil. Nous n'obtenons donc rien dans la console car il n'y a pas d'erreur. Maintenant, je fais une faute de frappe dans l'orthographe de cette API. Maintenant, enregistrez les modifications et jetez un œil. voyez, ici nous obtenons un objet d'erreur avec un code d'erreur, un message d'erreur, etc. Maintenant, nous allons afficher le message d'erreur sur le navigateur. Nous créons donc une autre variable d' état appelée error et passons une chaîne vide comme valeur par défaut. Maintenant dans la cage, définissez l'erreur, message d'erreur et imprimez cette erreur sur le navigateur. Ici, nous pouvons définir des conditions comme si une erreur n'est pas égale à une chaîne vide, alors seulement puis imprimer erreur. Enregistrez donc les modifications et jetez un œil. Vous voyez, nous recevons un message d'erreur. Et si je supprime la faute de frappe, message d'erreur ne s'affichera. Laissez-moi vous montrer mon truc pour utiliser des axiomes. Vous pouvez donc voir ici que nous devons écrire l'URL complète de notre API lorsque nous l'appelons. Dans le monde réel, vous avez la même origine pour toutes vos API dans un seul projet. Je suis donc très paresseux dans l' écriture de code dupliqué. Ce n'est pas une bonne pratique. Je crée donc une variable réutilisable et je l'utilise dans mon projet. Créons donc un nouveau fichier appelé XES point js. Et dans ce fichier, je saisis x années. Créez maintenant une nouvelle variable appelée instance. Tu peux l' appeler comme tu veux. Peu importe. Et exportez par défaut cette variable. Ici, j'écris X years dot create. Et dans cette fonction create, nous pouvons passer un objet. Et dans cet objet, nous ajoutons l'URL de base. Et en virgule inversée, j'ai obtenu cette URL de base et je la colle ici. Enregistrez maintenant les modifications. Et dans notre composant d'application, je supprime ce référencement et j'importe nos nouveaux axiomes à partir du fichier zéros point js. Maintenant, enregistrez les modifications et jetez un œil. Cela fonctionne de la même manière qu'auparavant. Nous n'avons donc plus besoin d'écrire cette URL de base encore et encore. Mais n'oubliez pas que vous devez importer X ans à partir de notre nouveau x égal à cinq. Si vous avez importé à partir du package axioms d'origine, vous devez écrire le point de terminaison avec l'URL de base. Donc, si vous obtenez une erreur dans cette méthode juste à partir de laquelle vous importez X années. Maintenant, dernière et dernière partie, XES avec async attend, ce qui le rend super cool. Async wait est donc le meilleur moyen de gérer les promesses en JavaScript. Permettez-moi de vous expliquer que vous insérez dans notre composant d'application, je crée une nouvelle fonction pour les produits de patch, fonction de données obtenir des produits. Et dans cette fonction, nous voulons utiliser wait for response. Nous devons donc ajouter une fonction async, et ce n'est qu'alors que nous pouvons utiliser await dans cette fonction. Donc, sur huit zéros, obtenez des produits et stockez cette valeur dans une variable appelée réponse et console cette réponse. Donc, en gros, lorsque nous appelons cette fonction plus cette API appellera et tant que nous n'aurons pas de données, elle ne s'exécutera pas. Ligne suivante. Maintenant, je commente ces axiomes de la musique et j'appelle notre nouvelle fonction à l'intérieur. Maintenant, enregistrez les modifications et jetez un œil. Nous obtenons le même objet que celui que nous obtenons dans la méthode then. Définissons donc les produits, les données ponctuelles de réponse, produits scalaires, et nous imprimons les données dans notre navigateur. Certains d'entre vous se demandent peut-être comment pouvons-nous gérer les erreurs dans ce domaine ? La solution est donc d' utiliser la méthode try and catch. J'écris donc à sec et sélectionne la deuxième suggestion. Et cela va générer, essayer et attraper un passe-partout. Maintenant, à sec, nous écrivons toute notre logique et nous nous engageons. Nous écrivons du code pour la gestion des erreurs. Je déplace ces trois lignes à l'intérieur, essaie de bloquer et d'engager. J'ai dit additionneur et j'utilise ce message d'erreur. Donc, si nous obtenons un additionneur dans ce bloc d'essai seulement , alors ce sketch sera exécuté. Dans le cas contraire, JavaScript l' ignorera pour. Maintenant, refaisons le dipôle. Enregistrez les modifications. Jetez un œil, vous voyez, nous avons un additionneur en haut et ça marche bien. Revenons donc au code VS. Et voyez, cette carte postale a l' air un peu déroutante et notre nouveau code est assez propre et facile à comprendre. Essayez donc d'utiliser async wait avec x ans. Cela fera bonne impression sur votre patron et votre client également. Si vous voulez une révision rapide des SCO, vous allez télécharger mon guide ultime des axiomes à partir de la boîte de description. Dans ce guide, j'écris tous les exemples de méthodes et de cas d'utilisation différents. Et en prime, vous apprenez à utiliser XES avec async wait. 7. useContext: Quel est le contexte utilisé. Use context hook est utilisé pour gérer les données globales dans l'application React, comme l'état global, l'équipe , les services, les paramètres des utilisateurs, etc. Voici donc une situation. Imaginez que vous créez une application avec ce type de structure de composants. Le composant principal est donc l'application, puis il en a pour les composants enfants. Et les composants j ont également une composante génétique. C'est donc comme une hiérarchie de composants. Maintenant, imaginez que nous avons les détails de l'utilisateur, ce composant de l'application, et que nous ayons besoin de détails utilisateur dans cet article unique. Si vous utilisez des accessoires pour partager ces détails, nous devons d'abord passer le composant principal, puis le flux, puis le post suivant. Ensuite, nous obtenons les détails de l'utilisateur dans un seul composant post. C'est donc très ennuyeux et difficile à entretenir. Les contextes d'utilisation nous aideront à créer des données globales pour notre application React. Et nous n'avons pas besoin de transmettre ces données à tous ces composants. commencé à accéder à ces données dans tous les composants dont nous avions besoin. Voyons maintenant comment créer des contextes. création de contextes dans React nécessite donc trois étapes simples. abord, créer le contexte, ensuite fournir le contexte, et troisièmement, consommer le contexte. Commençons donc par l'étape numéro un, la création des contextes. Nous créons l'état global pour la connexion des utilisateurs dans les deux fonctions de création de contextes à partir de la bibliothèque React. Cette fonction est utilisée pour créer des contextes. Maintenant, juste avant votre composant fonctionnel, créez un contexte et stockez-le dans une variable appelée contextes de connexion, vous pouvez prendre ce que vous voulez. Passons maintenant à l'étape numéro deux, qui fournit le contexte. Après avoir créé le contexte, nous devons définir dans quels composants nous voulons accéder à ces contextes. Encore une fois, dans cette hiérarchie, si vous souhaitez transmettre des données à un seul composant post, nous devons simplement fournir les données au composant principal et qui peuvent être accessibles dans tous leurs composants enfants. Dans notre exemple, nous voulons accéder à ces données dans le composant principal. Et il a un composant enfant, un message unique, contextes de connexion à droite, un fournisseur de points, et un composant de dette entre ces fournisseurs de contextes, quel que soit le composant que vous passez entre ce fournisseur, il et son enfant. peut accéder à la valeur de ces contextes. Nous pouvons maintenant transmettre la valeur en utilisant l'attribut value. Donc, la valeur est égale à entre accolades, je passe simplement par ici. Voyons maintenant comment accéder à cette variable dans notre composant de publication unique. Ouvrez donc le composant dans lequel vous souhaitez utiliser cette variable. Pour utiliser la variable de contextes de connexion, nous devons utiliser, utiliser le hook de contextes. Il est donc important d'utiliser les contextes hook de la bibliothèque React Et à l'intérieur de ce composant fonctionnel, utilisez des contextes. Et il accepte un argument, qui est celui des contextes de connexion. Nous devons donc importer ces contextes de connexion à partir de notre composant d'application. Exportons donc d'abord cela depuis le composant de l'application, puis importons les contextes de connexion à partir du composant de l'application. Passez maintenant ces contextes de connexion dans le hook de contexte américain. Et nous stockons cette valeur dans une variable appelée login. Consolons-le, sauvegardons les modifications et jetons un coup d'œil. Tu vois, on passe. Donc, quelle que soit la valeur que vous transmettez dans ce fournisseur de contexte, dépassez cette valeur en utilisant use context hook. Si vous comprenez ces trois étapes, félicitations, vous comprenez le hook des contextes d'utilisation. Récapitulons rapidement ce que nous avons appris. Use context est utilisé pour gérer les données globales dans React. Nous n'avons donc pas besoin de transmettre ces données via des accessoires du premier composant parent au dernier composant enfant. Si nous voulons transmettre des données uniquement pour le composant enfant, vous pouvez utiliser des accessoires. N'utilisez pas de contextes partout. Il suffit de l'utiliser quand vous en avez besoin. Maintenant, pour utiliser les contextes d'utilisation, il vous suffit de suivre trois étapes. Tout d'abord, créez le contexte, en utilisant create context et nommez les contextes comme nous l'avons fait pour les contextes de connexion. Maintenant, deuxième unité pour décider quels composants peuvent accéder ces contextes avec l'utilisation de contextes point, fournisseur, et passer d'autres composants entre cette balise de fournisseur dans l'attribut value, pass value entre accolades. Et dernière étape, vous devez importer ces contextes à partir de votre fichier et transmettre ce contexte à l'intérieur de vos contextes d'utilisation, accrocher et le stocker dans une variable, aussi simple que cela. Vous allez maintenant voir que notre composant d'application est un peu moche, mais il est simple. Contextes. Imaginez que nous ayons un phi ou six contextes, alors vous n'aimez tout simplement pas coder dans ce projet. Et si vous travaillez pour une entreprise, elle n'aime pas non plus le code non organisé. Créons donc une structure organisée pour créer des contextes. Tout d'abord, je crée un nouveau dossier dans le dossier source appelé contextes. Nous créons tous les contextes ici dans ce dossier. Maintenant, créez un nouveau fichier dans ce dossier appelé contextes de connexion fournis ab.js. Et dans ce fichier, nous sauvegardons notre ancienne logique de contextes de connexion. Tout d'abord, je crée une image à l'aide d'un FCE. Maintenant, je viens de copier ces contextes de création à partir du composant de l'application et de les coller ici. Maintenant, en retour, nous devons définir le fournisseur. Ajoutez donc des contextes de connexion fournisseur de points et fournisseur de dette interne. Nous devons passer tous les enfants, directement dans les accessoires enfants et passer les enfants à l'intérieur du fournisseur. Donnez maintenant un attribut value dans provider. Et je veux transmettre la valeur de date pour ces contextes. Je crée donc les détails de l'utilisateur et passe la valeur par défaut true. Vous pouvez transmettre n'importe quel type de données et transmettre cette variable d'état en valeur. Revenons maintenant à notre composant d'application, Un fournisseur important de contextes de connexion et de remplacement du fournisseur par un fournisseur de contextes de connexion. Parce que nous passons les enfants à l'intérieur fournisseur de dettes et supprimons les éléments inutiles de ce composant Maintenant, dernière et dernière étape, générez le chemin de ces contextes de l'application à nos contextes. C'est moins fournisseur de contextes de connexion. Et c'est ça. Nous avons organisé ce vilain code en code organisé. 8. useRef: Alors, qu'est-ce que l'utilisateur ? L'utilisateur F nous permet d'accéder aux éléments DOM et également de créer des variables mutables qui ne rendront pas le composant à nouveau. Ce sont les deux cas d'utilisation les plus courants de user if hook. Laissez-moi vous montrer comment créer une variable mutable. Donc, dans cet exemple, j'ai créé un champ de saisie et un événement onchange, je mets à jour cet état de nom avec la valeur d'entrée actuelle et j'affiche le nom ici. Maintenant, imaginons que nous voulions compter nombre de fournisseurs lorsque nous saisissons le nom. Quand j'enseigne cela à mes étudiants, ils m'ont demandé pourquoi nous ne pouvions pas l'utiliser, utilisé pour cela. Et je pense que vous avez peut-être la même question. Voyons ça en direct. Pourquoi nous n'utilisons pas le hook usted ce que compte rend. Donc d'abord, je crée une autre variable d' état et le nombre de noms donnés et je passe 0 comme valeur par défaut. Maintenant en cours d'utilisation, je vais mettre à jour le décompte d'une unité pour chaque rendu. Iodure dit Compte précédent, fonction flèche, précédent plus un. Et après le nom, j' afficherai la variable count. Maintenant, sauvez-le. Jetez un œil. Vous voyez, count est constamment mis à jour car lorsque ce composant est affiché, il met à jour la variable de réduction d'une unité. Et comme cette variable d'état est mise à jour, le composant est affiché encore et encore. Nous sommes donc coincés dans une boucle infinie parce que nous utilisons la date d'utilisation. Nous allons donc résoudre ce problème avec un hook d'application utilisateur. J'ai donc supprimé cette variable d'état et j'utilise effect et j'importe l'utilisateur f de la bibliothèque React. Maintenant, utilisateur f. Et ici nous pouvons donner une valeur par défaut identique à celle que vous avez indiquée. Maintenant, cette fonction renvoie un objet dont une propriété est active. Nous allons donc le stocker dans un nombre variable. Et consolons cette variable c, nous obtenons un objet avec une propriété courante. Nous pouvons mettre à jour ou afficher cette valeur en utilisant la propriété count point current here, right, count dark current et enregistrer les modifications. Maintenant, mettons à jour cette valeur lorsque le composant est rendu, à droite, utilisez un nombre d'animaux de compagnie égal à compter le point courant plus un. Sauvegardez-le et jetez un œil. Lorsque nous tapons dans la zone de saisie, le nombre est mis à jour d'une unité. Le premier cas d'utilisation de l'utilisateur F est donc de créer une variable mutable sans provoquer de nouveau rendu. Voyons maintenant le deuxième cas d'utilisation de l'application utilisateur, qui est l'accès aux éléments DOM. Dans React, nous pouvons ajouter un attribut href à l'élément, y accéder directement. Comprenons avec l'exemple. Nous avons donc ici une boîte de saisie et un bouton. Lorsque nous cliquons sur ce bouton, cette fonction s'exécute. Maintenant, je veux modifier la largeur de cette entrée. Lorsque nous cliquons sur ce bouton. Nous pouvons le faire en JavaScript Vanilla en utilisant document.getElementById ou par nom de classe. Mais dans React, nous n'avons pas besoin de le faire. Nous utilisons directement rep et nous obtenons cet élément dans variable. Laissez-moi vous le montrer. Jusqu'à présent, le plus important est d'utiliser rep, hook et write user et de le stocker dans une variable. Maintenant, donnez à cette entrée une propriété qui est égale à l'élément d'entrée, qui est le nom de notre variable ref. Maintenant, nous allons consulter la valeur actuelle C. Nous obtenons ce remplissage d'entrée dans la propriété courante. Maintenant, je vais changer cette entrée avec 2300 pixels. Alors que nous faisons du JavaScript à la vanille, n'est-ce pas ? Courant de point de l'élément d'entrée , style de point, largeur de point égale à 300 pixels. Ici, l'élément d'entrée point current est notre pilule d'entrée. Alors enregistrez-le et jetez un œil. Vous voyez, lorsque nous cliquons sur ce bouton, largeur d'entrée est augmentée à 300 pixels. Concentrons-nous maintenant sur cette entrée lorsque nous cliquons sur ce bouton. Revenons donc au code VS. Et dans la même fonction, je dois ajouter, devinez quoi ? Bon ? Point actuel de l'élément d'entrée point pocus. Enregistrez donc les modifications et jetez un œil. Lorsque nous cliquons sur ce bouton, largeur d'entrée augmente et la saisie est mise au point. C'est la même chose que dans Vanilla JavaScript, juste pour utiliser l' élément d'entrée point current. Ensuite, vous pouvez accéder à toutes les méthodes JavaScript de l'élément. Certains d'entre vous se demandent comment pouvons-nous savoir quelles méthodes nous pouvons utiliser avec des éléments et comment pouvons-nous nous en souvenir ? La réponse est donc que vous n'avez pas besoin de vous souvenir d'un nom de méthode. Laissez-moi vous montrer mon truc pour voir toutes les méthodes que nous pouvons utiliser avec les éléments. Ici. Il suffit de supprimer cette propriété actuelle et de l'enregistrer. Maintenant dans la console, vous pouvez voir cet objet d'élément d'entrée avec la propriété actuelle. Cliquez maintenant sur cette petite flèche, puis cliquez à nouveau sur cette flèche. Vous pouvez voir ici toutes les méthodes que nous pouvons appliquer à cet élément. Quel exemple nous voulons appliquer le style. Faites donc défiler vers le bas et cliquez sur cette icône pour voir plus de propriétés. Vous pouvez voir ici la propriété de style. Cliquez dessus et vous pouvez voir toutes les propriétés de styles, aussi simple que cela. Récapitulons donc ce que nous avons appris. L'utilisation de rep nous permet de créer des variables mutables qui ne provoquent pas de nouveau rendu. Et il est très utile d'accéder aux éléments DOM sans écrire document.getElementById ou par nom de classe. Voici donc la syntaxe du hook de l'application utilisateur. Ici, nous pouvons passer la valeur par défaut de cette variable, est facultative. Cette variable possède un seul objet, et cet objet ne contient qu'une seule propriété qui est active. Si nous voulons accéder ou mettre à jour, nous devons utiliser un courant de point variable. Nous pouvons également accéder aux éléments en utilisant leur attribut app. Souvenez-vous de mon truc, avec l'aide de la console, nous pouvons voir toutes les méthodes. 9. useReducer: Alors, qu'est-ce que c'est ? Le réducteur. Reducer est utilisé pour gérer l'état dans notre application React. En d'autres termes, use reductor fonctionne comme une instruction est censée le faire. Vous vous demandez peut-être ce qu'est la gestion de l'État ? La gestion des états est donc utilisée pour gérer tous les états d'application de manière plus simple. Pour écrire du charbon simple et propre pour tous les états et toujours utiliser le crochet réducteur utilisateur lorsque vous avez beaucoup d'états et de méthodes à gérer. Nous allons donc comprendre l'utilisation du réducteur avec l'exemple. Ici, j'ai créé une application de compteur simple en utilisant le crochet US did. Nous avons donc une variable de compteur et deux boutons, augmenter et diminuer. Ainsi, lorsque nous cliquons sur le bouton Augmenter, le comptage a augmenté d'une unité. Et si nous cliquons sur degrés bêta1, nombre diminue d'une unité. Exemple très simple. Appliquons maintenant use reductor dans cet exemple. Tout d'abord, laissez-moi nettoyer cette variable d'état. Maintenant, il est important d'utiliser la bibliothèque React hook React dans le composant fonctionnel, non ? Utilisez un réducteur. Reducer accepte deux arguments. La première est la fonction de réduction, qui gérera tous les états. Le second est notre état par défaut. Pour l'instant, oubliez cette fonction de réduction. Nous verrons cela après explication. Maintenant, définissons d'abord notre état par défaut. Je vais donc créer un objet dans lequel nous pouvons définir tous nos états. L'état initial d'écriture est donc égal à l'objet. Nous ne compterons pas les variables. Donc comptez deux points 0. Maintenant, passez cet état initial ici. Ce réducteur utilisateur renvoie un tableau identique à celui que vous avez fait avec hook, ce qui signifie que le premier élément retournera l'état actuel, et le second élément retournera une fonction qui nous aidera à mettre à jour cet état. Utilisons donc la restructuration additive. stockant cette variable, nous appelons post element en tant qu'état. Et le second est l'envoi. C'est le nom le plus courant pour utiliser le réducteur. Si nous voulons prendre un autre nom, vous allez le prendre. C'est à toi de décider. Maintenant, définissons notre fonction de réducteur, qui est la partie la plus importante de nous, réduire notre crochet. Donc, à l'intérieur de cette fonction, nous allons écrire notre propre logique pour ce réducteur utilisateur. La fonction Réducteur comporte deux paramètres. Le premier paramètre est state, ce qui signifie où se trouve actuellement notre application. deuxième paramètre est l'action, c' est-à-dire l'action que nous devons effectuer. Exemple, augmentation, diminution, etc. Je sais que c'est un peu déroutant. Mais après avoir terminé l'exemple d' extraction, vous le comprendrez correctement. Maintenant, cette fonction retournera l'état mis à jour. Donc pour l'instant, je retourne simplement l'objet avec count et current count, qui est cet état point count plus un. Maintenant, pour appeler cette fonction, nous allons utiliser la fonction de répartition. Ici. Dans la fonction de comptage d'augmentation. J'appelle le répartiteur et je ne passe rien dedans. Maintenant, je supprime ce nombre défini, et ici j'écris le nombre de points d'état. Maintenant, enregistrez les modifications et jetez un œil. Vous voyez, lorsque nous cliquons sur ce bouton d'augmentation, le nombre augmente d'une unité. Voyons maintenant comment appeler différentes actions, comme augmenter et diminuer. Nous passons donc d'abord l'objet dans la fonction d' envoi avec la propriété de type deux-points en Grèce Nous devons maintenant gérer ce type dans cette fonction de réduction. Bloquons donc ce paramètre d'action pour savoir ce que nous pouvons enregistrer les modifications et y jeter un œil. Lorsque nous cliquons sur ce bouton agrandi, nous obtenons un objet avec la propriété. Donc, quoi que nous transmettions dans cette fonction spread, nous pouvons y accéder par ce paramètre d'action. Utilisons donc un changement de vitesse pour gérer différentes actions. Vous pouvez utiliser if else, if. Mais j'aime bien le boîtier Switch, c'est vrai, doux. Et passez ici, le type de point exon et à l'intérieur, c'est ça ? Premier cas, qui est une augmentation de ceux-ci. J'ai écrit ça. Maintenant pour le deuxième cas, qui est diminué, réécrit le même compte mais moins un. Enfin, nous passons un cas par défaut et retournons le même état. Donc, si nous passons un autre type sauf augmenter et diminuer, cette valeur par défaut s'exécutera dans la fonction de décompte diminué. Nous écrivons, devinez quoi, non ? Distribuez le type d'objet, diminuez, enregistrez les modifications et jetez un œil. Tu vois, ça fonctionne bien. Récapitulons donc ce que nous avons appris. Use Reducer est utilisé pour gérer des états complexes dans l'application React. Voici donc la syntaxe du hook réducteur utilisateur. Il faut deux arguments. La première est la fonction de réduction, dans laquelle nous écrivons notre propre logique. Et le deuxième argument est l'état initial, qui est l'objet de toutes les variables. Maintenant, ce hook renvoie un tableau avec deux éléments. Nous utilisons donc la structuration ajoutée. premier élément est pour l'état de courant excessif, réduisez notre état initial. Et le deuxième élément est distribué en mettant à jour ce droit, aussi simple que cela. Fonction de réduction maintenant redéfinie, qui a deux paramètres. Le premier est utilisé pour accéder à l'état actuel, et le second est une action réduite pour obtenir des actions différentes. Quoi que nous transmettions dans cette fonction dispersée, nous pouvons y accéder en fonction réducteur par ce paramètre d'action. Et puis avec l' utilisation du boîtier de commutation, nous pouvons effectuer différentes tâches. C'est ça. Maintenant, dans cet exemple, je me suis trompé en utilisant type in string. Nous devons donc corriger ses fautes d' orthographe à deux endroits différents. Au lieu de cela, nous pouvons créer un objet avec le nom action. Et nous utilisons toujours des majuscules pour cet objet d'action. Ainsi, chaque fois que nous voyons cela, nous savons que c'est pour le réducteur. Donc, dans cet objet, je crée d'abord Increase, Increase et Decrease ou Diminue. Maintenant, aux affichages, je le remplace par des actions qui augmentent et diminuent en dispersion. Réécrivez également l'augmentation de l'action et les degrés de points d'action. n'y a donc plus de risque de fautes d'orthographe. Et si nous voulons changer de nom, nous pouvons directement mettre à jour cet objet et à d'autres endroits, il se met à jour automatiquement. Maintenant, je veux couper ces trois variables et les coller à la fin de ce composant. Notre code semble donc propre et facile à lire. 10. useLayoutEffect: Alors, qu'est-ce qui est utilisé ? Effet de disposition ? Ils utilisent l'effet de mise en page qui fonctionne exactement de la même manière que l'effet Hughes, mais la différence est quand il est exécuté. Utilisez donc les faits qui courent après l'impression du dôme sur le navigateur. Mais généralement, l'effet de sortie s'exécute avant que le dôme ne soit imprimé sur le navigateur. Ainsi, chaque fois que nous voulons exécuter code avant que le dôme ne soit imprimé, comme si nous voulions mesurer la hauteur, la largeur d'un élément ou tout autre élément lié à la mise en page. Nous pouvons utiliser l'effet de mise en page. Et il s'exécute de manière synchrone, ce qui signifie qu'il exécute la première ligne et ne passe à deuxième ligne que si l'exécution de la première ligne est terminée. Le cas d'utilisation le plus courant de l' effet de mise en page est d'obtenir la dimension de la mise en page. C'est pourquoi son nom est utilisé. Effet de disposition. Laissez-moi vous montrer quand il fonctionne. Donc, dans cet exemple, il y a un bouton bascule qui bascule ce texte et un effet d'utilisation avec bascule de dépendance. Cet utilisateur s'exécutera lorsque cet état de basculement changera et que l'impression utilisera l'effet dans la console. abord, j'importe un énorme effet de mise en page de la bibliothèque React, et maintenant je duplique ce code et remplace use effect par use layout effect. Maintenant, enregistrez les modifications et jetez un œil. Voyez quand le composant est rendu, les deux hook s'exécuteront. Maintenant, quand je clique sur ce bouton bascule, encore une fois, les deux crochets s'exécuteront. Mais concentrez-vous ici. effet Utiliser la mise en page est toujours exécuté en premier. Maintenant, vous pensez que c'est parce que nous l' écrivons avant de le déclarer. Donc, je déplace l'effet de mise en page après l'utilisation du crochet vectoriel et je jette un coup d'œil, voir, utiliser l'effet de mise en page sera toujours lancé post. Donc, le flux de travail est Clostridia calculer tous ces composants, puis utiliser l'effet de couches qui s'exécutera, puis React imprime tous les éléments sur le dôme. Et enfin utiliser un vecteur va courir. Mais ce processus est très rapide. C'est pourquoi nous pouvons le voir en direct. Quatre-vingt-dix-neuf pour cent Nous utilisons, utilisons l'effet dans notre projet. Si le projet ne fonctionne pas comme nous le voulons, alors nous essayons d' utiliser l'effet de mise en page. Voyons maintenant le cas d'utilisation le plus courant, évidemment hors effet. Dans le même exemple. Je veux obtenir la dimension de ce texte , puis nous ajoutons un rembourrage supérieur autant que sa hauteur. Donc, pour accéder aux éléments DOM, que devons-nous utiliser ? Bon ? C'est utilisateur. Je crée donc un code utilisateur, F et VS, auto important use ref de React. Et c'est pourquoi j'adore cette langue et cette extension. C'est un excellent outil de productivité. Ce que les développeurs React. Maintenant, nous stockons cet utilisateur dans une constante appelée retour à la et passons l' attribut href à ce texte. Maintenant, nous avons d'abord essayé d'utiliser, d' utiliser l'effet et de commenter cet effet de mise en page d'utilisation. Donc, en cours d'utilisation effet, réécriture, taxe ref point courant, point, obtenir le client de délimitation racké. En utilisant cette fonction, nous pouvons obtenir toutes les dimensions de cet élément. Laissez-moi vous montrer rapidement. Tout d'abord, stockez cette dimension invariable. Maintenant, consolidons-nous et jetons un coup d'œil. Et nous obtenons, parce que nous devons ajouter une condition pour vérifier si ce retour à la ligne n'est pas nul. Ce n'est qu'alors que nous devons exécuter ce code. Donc, si x ref point courant n' est pas égal à null et déplacez ce code à l'intérieur. Enregistrez les modifications et jetez un œil. Vous voyez, nous obtenons l' objet de dimension avec toutes les propriétés. Maintenant, je veux ajouter un rembourrage en haut pour ce texte autant que sa hauteur. Donc, écrivez x ref point actuel style dot padding top égal à hauteur du point de dimension dollar invective. Réparez-le et enregistrez-le. Vous voyez, quand nous cliquons sur ce bouton bascule, postez ce texte ici, puis il se déplace vers le bas. Regardez au ralenti. C'est là le problème de l'effet américain. Nous constatons cette friction dans la production. Maintenant, je remplace l'effet u par l'effet de mise en page d'utilisation. Enregistrez les modifications et jetez un œil. Vous voyez, nous n'avons pas vu cette friction parce que effet de mise en page est utilisé avant l'impression du dôme. Récapitulons donc. Effet de disposition d'utilisation. effet Utiliser la mise en page est identique à l'accroche de l'effet utilisateur. Mais la seule différence est que lorsqu'ils exécutent le flux de travail, c'est la postérité. Je calcule toutes les mutations, puis j'utilise l'effet de mise en page, puis je rajoute tous les éléments sur DOM. Et après cette utilisation, l'effet s'exécutera. Et la deuxième différence est que l'effet de mise en page est synchrone et l'effet d'utilisation est asynchrone. Nous utilisons donc 99 % de fois l'effet utilisateur dans notre projet. Mais si cet effet d'utilisation ne fonctionne pas correctement, alors seulement nous utilisons l'effet de mise en page. Et je vous montre l'effet de mise en page d'abus de cas d' utilisation le plus courant . 11. useMemo: Qu'est-ce qui est utilisé mémo. Use memo hook est utilisé pour appliquer la mémoisation et réagir. Qu'est-ce que la mémorisation ? mémoisation est une technique permettant d' améliorer les performances du code. Et il est utile d'éviter des calculs coûteux à chaque rendu lorsque la valeur renvoyée ne changera pas. Comprenons ce que l'exemple. Dans cet exemple, je crée deux variables d'état, number , et ce nombre est pour l'entrée. Et passez ce numéro dans cette fonction coûteuse, que j'ai déclarée après le composant. Fondamentalement, cette fonction renverra le même numéro. Mais après avoir exécuté cette boucle indésirable, que j'ai créée juste pour explication, dans le monde réel, il peut s'agir de n'importe quel calcul long ou de tout ce qui prend plus de temps, puis de stocker sa valeur de retour dans le calcul variable. Maintenant, cet état sombre permet de basculer entre le mode sombre et le mode clair. Et selon cette variable sombre, nous avons changé la couleur de fond et la couleur du texte. Laisse-moi te montrer. Ainsi, chaque fois que nous augmentons la valeur de cette entrée, cette fonction coûteuse s' exécutera et retournera une nouvelle valeur dans le calcul et l'affichera ici. Et lorsque je clique sur ce bouton, couleur d' arrière-plan et la couleur du texte changent. Concentrez-vous maintenant sur ce calcul. Chaque fois que nous changeons ce numéro, nous appelons cette fonction coûteuse et la console que cette boucle a démarrée, mais cela prend 0,5 ou 0,3 seconde de délai pour la mise à jour. C'est à cause de notre fonction peu coûteuse de boucle indésirable. Mais lorsque nous cliquons sur ce bouton bascule, mise à jour du thème prend également quelques secondes. Et console UC. Encore une fois, la boucle Prince a démarré et c'est pourquoi nous collons cette équipe d'intervalle de retard. Ainsi, lorsque nous cliquons sur le bouton bascule, React affiche à nouveau le composant. Tout d'abord, cette ligne va s'exécuter et elle appelle cette fonction coûteuse. Et cela demande un surcroît de travail. Et nous ne pouvons pas changer d'équipe immédiatement. La solution est donc nous n'exécuterons cette fonction que lorsque ce nombre sera modifié. Nous utilisons donc le crochet mémo use pour cela. Et la bonne nouvelle est syntaxe des mémos est la même que celle du crochet d'effet Hughes. Si vite, j'ai importé use memo de bibliothèque React et je l'ai ajouté dans le composant fonctionnel. Use memo prendra deux arguments. Le premier est pour la fonction de rappel et le second pour les dépendances. Ainsi, chaque fois qu'une variable de cette dépendance change, n'est qu'alors que cette fonction de rappel sera exécutée. Je passe donc le numéro dans cette dépendance LA. Et à l'intérieur de cette fonction de rappel, nous appelons cette fonction coûteuse et passons le numéro en tant que paramètre. Maintenant, vous pensez quelle est la différence entre user et use memo ? L'effet d'utilisation et l'utilisation de mémo sont identiques. Mais la différence réside dans l'utilisateur, nous pouvons renvoyer la valeur et la stocker dans une variable. Nous devons créer une variable d'état supplémentaire. Ensuite, avec la fonction de valeur définie, nous pouvons mettre à jour la dette. Mais dans le mémo d'utilisation, nous pouvons renvoyer la valeur et la stocker dans une variable. Je stocke donc cette valeur dans le calcul des mammifères. Maintenant, je supprime cette ligne et au lieu de calcul, nous appelons calcul mémo. Maintenant, enregistrez les modifications et jetez un œil. Lorsque nous changeons le numéro, cela prend quelques secondes. Et c'est évident car nous ajoutons une boucle indésirable. Mais quand on clique sur ce bouton bascule, ça ne prend pas de secondes supplémentaires. Et nous pouvons immédiatement basculer entre les thèmes. Et cette technique améliore les performances de notre application, ce qui est très important dans le monde d'aujourd'hui. Récapitulons ce que nous avons appris. Use memo est utilisé pour améliorer les performances de notre application React. Nous pouvons arrêter d'exécuter des fonctions indésirables lors du nouveau rendu. Voici donc la syntaxe du memo hook utilisé. Il faut deux arguments. La première est la fonction de rappel, qui renverra la valeur. Et ici nous allons stocker cette valeur dans variable. Maintenant, le deuxième argument est le tableau de dépendances, dans lequel nous pouvons ajouter variables lorsque cette variable changera, puis ce rappel sera exécuté. Avec cette variable. Nous imprimons la valeur de retour. Nous effectuons tous les effets secondaires en cours d'utilisation Hooke et toutes les fonctions coûteuses, calcul en cours d'utilisation memo hook, aussi simple que cela. 12. useCallback: Qu'est-ce que le callback utilisé. Use callback est utilisé pour renvoyer une fonction mémo. Elle est également utile pour empêcher la recréation de fonctions sur le rendu. Je sais que cela semble un peu déroutant, mais ce n'est pas le cas. Comprenons avec l'exemple. Dans cet exemple, je crée deux variables d'état. premier est le numéro pour la saisie du nombre, et le second est pour l'équipe bascule. Et en fonction de cela, notre couleur d'arrière-plan et la couleur du texte changeront. Nous avons maintenant une fonction appelée calculer la table, et elle renvoie les cinq premières lignes de ce nombre stable. Dans le monde réel, cela peut être comme appeler une API. Maintenant, j'ai créé un composant simple appelé tableau d' impression pour imprimer le tableau. Et je passe cette fonction en tant qu'accessoires. Donc, dans ce composant, je crée des lignes d'état et dans l'icône utilisateur, je résout cette ligne et passe cette fonction de calcul de table. Fonction Insérer des lignes. Donc que les valeurs d'Eddie étaient variables en lignes. Ensuite, imprimez le tableau de cette ligne en utilisant cette méthode cartographique, c'est aussi simple que cela. Voyons cette diapositive. Ici. Nous avons un seul numéro d'entrée. Et après cela, j'imprime ce tableau en utilisant le composant bring table. Et enfin, nous avons le bouton bascule pour basculer l'équipe. Ainsi, lorsque nous cliquons sur le bouton bascule, le thème changera. Lorsque nous changeons de numéro, nous voyons le tableau ci-dessous. Maintenant, je vais vous montrer le problème. Tout d'abord, permettez-moi d'ouvrir la console et de rafraîchir la page. Voyez quand j'apporte un composant double qui rendra console pour la première fois que cette table d'impression s'exécute. Maintenant j'ai changé le nombre et cette fonction de calcul de table va changer. Et c'est le composant de table de lecture et d'impression terminé à nouveau console que cette table d'impression fonctionne, ce qui fonctionne bien. Maintenant, quand je bascule à nouveau l'équipe, consultez ces exécutions imprimables, ce qui signifie que le composant imprimable vous est rendu à nouveau. Et si nous changeons d'association, et c'est le problème de performance car lorsque nous changeons un état de ce composant, cette fonction sera recalculée. Et même si notre nombre est le même, il retournera la même valeur avec nouvelles instances soviétiques, c'est un nouveau résultat. Ensuite, il affiche à nouveau le composant imprimable. Nous devons maintenant arrêter cette récréation de fonction indésirable. Et c'est pourquoi nous utilisons, utilisez le hook de rappel. Et la bonne nouvelle est que l'utilisation du rappel est exactement la même chose qu' ils utilisent memo hook. C'est donc une petite différence dans l'utilisation du rappel et de l'utilisation du mémo hook. Donc, use memory renvoie la valeur de mémorisation et use callback renvoie un memoir est une fonction simple comme ça. Donc tout d'abord, j'ai importé use callback de React et j'ai ajouté ici, use callback. Maintenant, il accepte deux paramètres, comme use memo et use effect. Le premier est la fonction de rappel et le second est Dependencies. Dépendances, j'écris des nombres. Dans callback, je copierai et collez simplement cette instruction return. Nous pouvons maintenant stocker cette fonction dans une variable appelée table de calcul. Et je supprime cette ancienne fonction. Donc ici, si nous utilisons use memo, nous n'obtenons que cette valeur dans cette variable. Mais si nous utilisons use callback, alors nous obtenons cette fonction complète dans cette variable. Et si nous voulons exécuter cette fonction, nous devons écrire comme ceci. Donc, chaque fois que nous changeons le nombre, n'est qu'alors que cette fonction s'exécutera. Maintenant, enregistrez les modifications et jetez un coup d'œil. Quand nous augmentons le nombre. Il peut résoudre ces courses de table d'impression. Et maintenant je clique sur le bouton bascule. Il ne console pas les exécutions de cette table d'impression. Nous résolvons donc ce problème à l'aide de l'utilisation de callback. Maintenant, nous pouvons passer une valeur en tant que paramètre dans cette fonction. Par exemple, je passe pour entendre, je stocke cela dans la variable value et vous pouvez l'utiliser dans cette fonction. Je crée une nouvelle variable, nombre nu est égal au nombre plus la valeur. Et au lieu de ce numéro, on passe un nouveau numéro. Nous obtenons donc le double du numéro d'origine plus deux. Cela dépend de vous de la façon dont vous pouvez utiliser ce paramètre. N'oubliez pas, n'importe quel mémo d'utilisation, vous pouvez le faire. Maintenant, récapitulons ce que nous avons appris. L'utilisation de callback est donc utilisée pour retourner la fonction de mémorisation et améliorer les performances de notre application React. La syntaxe Use callbacks est la même que celle utilisée pour memo hook, mais use memory renvoie la valeur de mémorisation et use callback renvoie une certaine fonction MY is, puis utilise callback, nous pouvons passer la valeur comme paramètre, mais dans le mémo d'utilisation, nous pouvons le faire aussi simplement que cela. J'espère que vous comprenez utiliser callback, hook et la différence entre use callback et use memo. 13. Crochets personnalisés (useFetch): Alors, qu'est-ce que le crochet personnalisé ? Les crochets personnalisés sont essentiellement fonctions réutilisables dans les villes simples. Des crochets personnalisés à vos propres crochets que vous créez pour votre propre usage. Et vous pouvez les utiliser plusieurs fois dans votre projet. Par exemple, vous avez une certaine logique dans laquelle vous utilisez un ou plusieurs Hooks React intégrés. Et vous devez utiliser cette logique plusieurs fois dans votre projet. Ainsi, au lieu d'écrire la même logique longue à chaque endroit, vous créez votre propre hook ou fonction, qui est un hook personnalisé. Et vous l'utilisez comme nous utilisons d'autres hooks de React, c'est aussi simple que cela. Créons l'un des crochets personnalisés les plus utiles pour récupérer des données depuis l'API. J'adore cette coutume parce que je l'utilise beaucoup dans mes projets. Ici, je crée un exemple simple dans lequel nous appelons API ou les détails des utilisateurs aléatoires et affichons leurs noms avec l'ID. Tout d'abord, je crée une variable d'état appelée réponses et je passe un tableau vide comme valeur initiale. Après cela, j'utilise le hook d'effet avec les dépendances MDMA. Il ne s'exécute donc que lorsque le composant est rendu pour la première fois. En effet, je transmets les données de cette API et les convertis au format JSON, puis je les place dans les réponses. Et après tout cela, j'affiche ces données en utilisant la méthode cartographique. Maintenant, imaginez que vous vouliez récupérer des données de l'API destinées à 12 composants. Vous devez donc écrire ce code dans tous ces composants, qui n'est pas une bonne pratique dans React. Nous allons donc créer un hook personnalisé pour la récupération des données. Donc tout d'abord, je crée un dossier, des crochets personnalisés. Nous stockerons tous nos hooks personnalisés dans ce dossier pour organiser notre code, ce qui est une bonne pratique pour les développeurs. Dans ce dossier, nous créons un nouveau fichier appelé use fetch NodeJS. Commencez toujours votre nom de hook personnalisé par un mot-clé use, qui est une convention courante. Maintenant, j'écris ajouter un FCE pour passe-partout fonctionnel en utilisant cette extension ESL et React. Donc tout d'abord, j'ai obtenu cette date et j'utilise un vecteur de ce composant et collé dans use patch et import utilisateur et utilise des données de la bibliothèque React. Nous acceptons maintenant un paramètre dans cette fonction appelé URL. Nous utilisons cette variable URL à la place de l'API. Ainsi, chaque fois que nous utilisons, utilisons phage, nous devons simplement passer l'API dans cette fonction. Ici, réécrivez cette variable d'état de réponse et enregistrez-la. Revenons maintenant à notre composant d'application. Et nous avons juste essayé d' utiliser phage et de réagir dette Auto Import à partir de notre dossier de hooks personnalisés. Donc, dans ce cas utilisé pour sa fonction, nous pouvons passer n'importe quelle API et nous pouvons stocker cette valeur dans une variable de données. Et enfin, atteindre ces réponses avec des variables de données. Maintenant, je l'enlève, je l'utilise et je l'ai utilisé d'ici. Nous n'en avons pas besoin. Maintenant, enregistrez les modifications et jetez un œil. Nous obtenons nos données. Nous avons créé avec succès notre article et l"espoir personnalisé le plus utile que vous pouvez voir s"appelle un look soigné et propre. Ce n'est donc qu'un exemple. Maintenant, c'est à vous de savoir comment utiliser votre logique pour différents cas d'utilisation. Essayez donc de réfléchir et d'appliquer votre logique et de créer des hooks personnalisés qui vous aideront dans vos futurs projets. Récapitulons ce que nous avons appris. Les hooks personnalisés sont votre logique, que vous avez créée en tant que fonction réutilisable. Et dans ce cas, vous pouvez utiliser plusieurs crochets et créer quelque chose qui vous aidera à ignorer les tâches répétées dans votre projet. De plus, vous pouvez simplement utiliser ces crochets personnalisés dans vos différents projets. 14. Validation de formulaire avec FORMIK et YUP: Dans la vidéo d'aujourd'hui, nous allons voir la validation de formulaire, qui est un sujet très important dans React. Jusqu'ici. Gestion des formulaires, nous utilisons formic et pour la validation de formulaire, nous utilisons la bibliothèque Yup car elle facilite grandement la validation des formulaires. J'en suis très heureux et j'espère que vous l'êtes aussi. Commençons donc. Tout d'abord, nous verrons comment gérer notre propre formulaire en utilisant la pandémie. abord, installons la bibliothèque ouvrir le terminal en utilisant Control plus back take for Windows et Command Plus back tick pour Mac et écrivons npm installed pour moi. Ou si vous utilisez Yan, écrivez Yan, ajoutez un formic et appuyez sur Entrée. Fermez le terminal, nous n'en avons pas besoin. Et créons d'abord un formulaire de base. Je crée donc un formulaire et je lui donne un formulaire d'inscription au nom de classe. Maintenant, ajoutons une étiquette ou un nom et un chemin ici. Et un type d'entrée, texte et un nom sont égaux à name. Maintenant, je duplique ces deux lignes trois fois de plus. Donc, deuxième étiquette pour l'e-mail et également type d'entrée à e-mail et nom à e-mail également. Ensuite, je veux une étiquette pour le mot de passe, type de saisie du passeur et du nom, ainsi que le mot de passe et le dernier niveau ou le pays et le mot Entrez le type de mot de passe et le nom pour voir le mot de passe Enfin, nous ajoutons le type de bouton, soumettons, enregistrons les modifications et jetons un œil. Tu vois, nous avons ce poème clair et quelques styles de base. Donc j'ai Guam qui a l'air bien. Vous pouvez également obtenir ce style de paume en copiant et collant simplement le code CSS dans votre fichier. Maintenant, gérons ce formulaire en utilisant la bibliothèque pattern make. Donc tout d'abord, j'importe utilisé pour make function à partir de la formation de ces bombing d'utilisation est essentiellement un hook personnalisé. Gestion des états et gestion des événements. Ne vous embrouillez pas. Il suffit de voir cela une fois et vous serez tous les doutes résolus. Donc, dans notre composant a été dérivé, utilisez formic et nous passons object. La première propriété de cet objet est la valeur initiale de notre poème. Nous devons donc passer quatre valeurs ici parce que nous voulons gérer ces entrées de pores. Nous créons donc une nouvelle variable en dehors de cette fonction pour nos valeurs initiales. Et nous écrivons des objets. Maintenant, faites attention ici. Nous devons utiliser exactement le même nom lorsque nous transmettons nos noms d'entrée. Donc la première propriété est name, car ici nous passons name chaîne vide. Ensuite, nous avons un e-mail, une chaîne vide, puis un mot de passe, une chaîne vide. Et le dernier. Devine dans quel sens, non ? Bon. C'est le mot de passe parce que nous passons dernière entrée nommée see password et aussi une chaîne vide. Maintenant, nous transmettons nos valeurs initiales. Donc, dans l'objet JavaScript, si le nom de la propriété et le nom de la variable de valeur sont identiques, nous pouvons supprimer cette variable de valeur. Je l'enlève donc et cela fonctionne de la même manière. C'est pourquoi je crée une variable avec le même nom. Maintenant, dans cet objet, nous devons passer une propriété supplémentaire, qui est onsubmit. Ici, nous passons la fonction flèche et nous pouvons accéder aux valeurs de notre formulaire et imprimer ces valeurs dans la console. Connectez-vous et appuyez sur Tab. Et nous obtenons console.log. Ce sont de petites astuces qui vous aideront à écrire du code rapidement. Nous transmettons donc des valeurs. Maintenant, stockons cela dans une variable appelée formic. Et consolons cette variable de formation et voyons ce que nous obtenons les modifications enregistrées, et jetons un coup d'œil, voyons cette forme de variable, de valeurs, d' erreurs et de nombreuses autres méthodes comme handle, blur, handle, change, handle, submit, etc. Utilisons ces méthodes. Je vais structurer cet objet parce que je ne veux pas écrire valeurs de points formiques ni changement de poignée de point formique parce que cela rendrait notre code désordonné. Nous voulons donc d'abord des valeurs qui stockent toutes les valeurs de cette forme. Ensuite, nous voulons gérer le flou, gérer les modifications et gérer l'envoi. Il s'agit de fonctions prédéfinies. Nous n'avons donc pas besoin de les définir. C'est pourquoi le formic est si populaire pour la gestion des formulaires. Vous n'avez pas besoin d'écrire toutes ces fonctions. Maintenant, dans notre formulaire, est-ce que je passais la valeur pour cette entrée de nom, qui est le nom du point de valeur. Ensuite, je veux ajouter l'événement onblur, qui s'exécute lorsque nous vivons la boîte de saisie. Ici, nous passons simplement le flou de poignée. Et enfin j'ajoute onchange et passe handle change. Maintenant, je copie simplement ces trois attributs et je les colle dans toutes les balises d'entrée. Nous n'avons qu'à modifier ces valeurs. J'écris donc ici un e-mail. Analyseur suivant et dernier analyseur de vue. Maintenant, dernier événement qui est géré submit in form tag, nous ajoutons un nouvel attribut sur submit et passhandle submit method et supprimons cette ligne. Enregistrez les modifications et jetez un œil. Nous allons remplir le formulaire et cliquer sur le bouton Soumettre. Tu vois, nous obtenons toutes les valeurs de pilule. Ainsi, dans cette fonction onsubmit, nous pouvons écrire notre logique Submit Form. Comment la manipulation des formulaires devient simple et facile avec le formage. De plus, notre code est très propre et facile à comprendre. Voyons maintenant comment valider ce formulaire à l'aide du bus de bibliothèque. Installons la bibliothèque, ouvrons le terminal et écrivons npm install yup et appuyez sur Entrée. bibliothèque yup nous aidera donc à valider les valeurs de notre pilule de saisie et à renvoyer les erreurs. Et puis avec l' aide du pauvre moi, nous afficherons l' erreur aussi simple que cela. Fermons ce terminal. Maintenant, créons notre message de schéma de validation en utilisant la bibliothèque Yup Le schéma JSON valide est essentiellement conditions que nous vérifions pour effectuer la validation. Pour cela, je crée un nouveau dossier dans SRC appelé schemas. Et dans ce dossier, je crée un nouveau fichier appelé index.js. Je vous expliquerai plus tard pourquoi je crée un fichier nommé index.js. Donc dans ce fichier, d'abord, j'importe tout comme yup de votre bibliothèque. Je crée maintenant une variable appelée schéma d'inscription. Tu peux l'appeler comme tu veux. Nous utilisons yup dot object et à l'intérieur, nous passons notre objet de validation. Si vite j'ajoute un nom. Assurez-vous d'utiliser le même nom que celui indiqué dans nos valeurs initiales. Ajoutez donc name, Garland, yup, dot string, dont nous vérifierons que notre valeur entrée est chaîne ou non. Ensuite, point signifie trois, ce qui signifie qu'il faut au moins trois caractères. Et le dernier point est requis, ce qui permettra de s'assurer que cette facture ne sera pas vide. Si nous voulons savoir d'où j'écris ces méthodes, vous pouvez consulter la documentation sur NPM. Nous ajoutons maintenant notre champ suivant appelé e-mail. Et encore une fois était de rejeter la chaîne. Ensuite, nous avons la méthode e-mail pour valider l'adresse e-mail. Et la dernière est requise. Maintenant, encore une chose ici, dans presque toutes les fonctions, nous pouvons transmettre notre message d'erreur personnalisé, que nous voulons afficher dans notre formulaire. Par exemple, dans cette fonction requise, je veux s'il vous plaît entrer votre nom. Maintenant. Pareil dans cette fonction e-mail. Je veux s'il vous plaît entrer un e-mail valide. Et puis j'ai besoin d'écrire, s'il vous plaît entrer votre e-mail. Maintenant, notre prochaine facture est le mot de passe. Tout d'abord, vérifiez à nouveau la chaîne. Maintenant, vous pouvez ajouter une condition liée à votre choix, minimum 6, maximum 15. Mais je vous suggère d'utiliser une expression régulière pour la validation. Vous pouvez effectuer une recherche sur Google et Google Exploration ou mot de passe. Et je vous donne ce lien d'expression régulière dans la boîte de description. Vous pouvez copier à partir de là. Nous avons ici une expression régulière pour mot de passe. Alors recopiez ça. Et dans notre fichier de schéma, je crée une nouvelle variable appelée password rejects et je la colle ici. Maintenant, nous avons ajouté une autre méthode appelée matches. premier argument est que notre mot de passe est refusé. Ensuite, nous transmettons notre message d'erreur. Veuillez saisir un mot de passe valide. Et enfin, nous passons la fonction requise avec le message. Veuillez saisir votre mot de passe. Maintenant, dernière propriété, qui est mot de passe C, deux-points, chaîne de points yup. Nous devons maintenant vérifier ce mot de passe C, identique à ce mot de passe. Donc pour cela, nous avons une autre méthode appelée une expression approfondie est LA. Et pour obtenir la valeur de ce mot de passe, nous écrivons yep point ref, puis nous passons notre nom de fichier, qui est mot de passe. Et le deuxième argument est notre message d'erreur, qui est mot de passe, ne correspond pas. Enfin, nous ajoutons la fonction requise avec le message. Entrez le mot de passe de confirmation. Nous exportons maintenant ce schéma depuis notre fichier et l'enregistrons. Maintenant ou composant. abord, nous importons ce schéma d'inscription depuis le dossier du schéma. Et ici, nous n'avons pas à écrire ce fichier d'index car React prend le fichier index.js comme fichier par défaut si nous n' écrivons que le nom du dossier. Et c'est pourquoi j'ai nommé ce fichier index.js. Maintenant, dans ce formulaire d'utilisation, nous avons une propriété pour valider ce schéma, validation Schema. Et ici, nous passons le schéma d'inscription. Maintenant, nous obtenons toutes les erreurs dans les variables adultes. Ajoutons ceci ici. Et flingue toutes ces erreurs. Enregistrez les modifications et jetez un œil. Voir West, nous avons un objet vide. Maintenant, je clique sur le bouton Soumettre et z, nous obtenons toutes ces erreurs. Maintenant, j'écris nom et je vois que notre erreur de nom a disparu. Maintenant, ajoutons un e-mail et un mot de passe. Une lettre majuscule, une minuscule, un chiffre et un caractère spécial c. Notre erreur de mot de passe a également disparu. Maintenant, ajoutons un mot de passe différent. Nous obtenons donc ce mot de passe, ne correspond pas à l'erreur. Et si nous écrivons le même mot de passe, toutes les erreurs disparaîtront. Nous obtenons donc des adders dans la console. Et maintenant, nous devons montrer ces erreurs dans notre formulaire. cas d'erreur d'affichage, j'ajoute une DU et je lui donne un nom de classe dans notre conteneur. Et dans ce cas, nous afficherons notre erreur. Maintenant, j'ajoute simplement une condition, qui est si le nom du point d'erreur est disponible, puis affiche l'erreur. J'utilise le paragraphe avec l'erreur de forme ClassName, puis j'imprime le nom du point d'erreur, enregistre les modifications et jette un œil. Maintenant, je n'écris rien et je clique sur le bouton Soumettre. Vous voyez, nous obtenons notre erreur de nom. Mais un petit bug ici, qui est que nous ne touchons même pas saisie de nom et à l'écriture d' autres champs, nous obtenons également l'erreur, ce qui n'est pas bon. Allons résoudre ce problème, cette utilisation Wyoming a une autre propriété appelée nous. Consolons cela, sauvegardons les modifications et jetons un coup d'œil. Tout d'abord, nous obtenons un objet vide. Maintenant je clique sur ce champ e-mail et rien ne se passe. Mais quand nous aurons quitté ce champ de saisie, puis l'e-mail, nous ajouterons cet objet. Nous sommes maintenant dans le champ du mot de passe. Et quand nous avons quitté cette facture en cliquant sur une autre pilule ou en appuyant sur Tab, nous obtenons le mot de passe dans cet objet. Donc, dans notre paume, j'ajoute une autre condition, ce nom de point et n. Maintenant, sauvegardez les modifications et jetez un œil. Maintenant je clique sur ce champ e-mail puis sur Leptis input, alors nous n'obtenons pas cette erreur de nom. Si nous cliquons sur le bouton Soumettre ou si nous vivons ce nom vide, alors seulement nous obtenons cette erreur. Copions donc ce conteneur d'erreur et collez-le après toutes les pilules d'entrée. Maintenant, pour l'e-mail, nous changeons d'adresse, d'e-mail. Cet e-mail. Et les erreurs cérébrales parsèment les e-mails. Quel mot de passe nous changeons les erreurs mot de passe point, mot de passe point et les erreurs d'impression mot de passe Et le dernier pour confirmer le mot de passe. Nous changeons d'époque. Voir mot de passe, ne voit pas le mot de passe et erreurs d'impression point c mot de passe. Et je supprime ces consoles, enregistre les modifications et jette un œil. Maintenant, cliquez sur le bouton Soumettre et nous obtenons tous les noms d'Aaron et z, nous obtenons une erreur différente. Et j'écris trois caractères ou plus. C'est parti maintenant. Alors je sens toutes les pilules. Ensuite, cliquez sur le bouton Soumettre et nous obtenons toutes les valeurs dans la console. Nous pouvons maintenant effacer toutes les pilules de saisie après avoir envoyé le formulaire. Donc, dans la propriété onsubmit, nous avons la méthode actions. Et après console, nous écrivons excellence point reset, form. Sauvegardez-le et jetez un œil. Je ressens tous les détails. Et quand je clique sur le bouton Soumettre, tous les champs de saisie sont clairs. Maintenant, nous pouvons faire cette soudure à froid en utilisant un composant de fabrication, qui est la deuxième méthode pour manipuler la paume à l'aide de comic. J'importe pour moi un composant de formulaire et de build. Maintenant, je sélectionne le pull form et j'appuie sur Ctrl plus Shift plus P dans Windows et command plus P sous Mac. Et écrivez, enroulez entrée et droite. Et appuyez sur Entrée. Maintenant, nous passons des valeurs initiales égales à deux valeurs initiales. Eh bien, écoutez, le schéma est égal au schéma d'inscription. Et pour onsubmit, nous créons une nouvelle fonction appelée onsubmit et copions ce code et le collons ici. Nous transmettons donc submit égal à sur Submit. Maintenant, ce bombardement utilise méthode des accessoires de rendu pour rendre le poème. Donc, écrivez des accolades et nous avons des invites, fonction flèche, et nous déplaçons notre paume à l'intérieur. Ces sondes ont donc toutes les méthodes que nous obtenons ici. Nous allons donc le détruire après tous les changements. Je sais que ça a l'air compliqué, mais ça ne l'est pas. Après avoir terminé ce tutoriel, vous le comprendrez correctement. Maintenant, remplaçons notre balise de formulaire. Quel composant de formulaire ? Assurez-vous également de mettre à jour la balise de fermeture. Maintenant, supprimez-le onsubmit. Nous n'en avons pas besoin. Nous avons donc maintenant un composant défaillant, qui est le remplacement de nos champs de saisie. Donc j'écris ici, nous allons passer le type est égal au texte et le nom est égal au nom. Et fermez ce composant de champ. Assurez-vous d'écrire le même nom que celui que nous transmettons dans les valeurs initiales. Ce composant de champ fonctionne de la même manière que ce champ de saisie. Nous n'avons pas besoin de transmettre ces trois attributs. Form, il le fait tout seul. Et c'est le pouvoir de la formation. Vous pouvez y transmettre autant attributs que vous souhaitez transmettre dans un champ de saisie. Par exemple, l'espace réservé est égal à saisir votre nom, enregistrer les modifications et y jeter un œil. Vous voyez, nous obtenons InputField, identique à cette entrée de nom. Supprimons donc notre pilule de saisie et supprimons également cet espace réservé. Je n'en veux pas. Maintenant, je copie ce composant de champ et je le remplace par tous les champs de saisie. Maintenant, pour l'e-mail, je passe le type à l'e-mail et au nom. E-mail. Maintenant pour le mot de passe, tapez passe-haut vers mot de passe et nom, également mot de passe et confirmation du mot de passe. Je passe le type au mot de passe et au nom, voir mot de passe. Maintenant dernière étape, nous devons déstructurer à Rs, entrer dans la pilule à partir de ces invites. J'écris donc un test de virgule d'objet. Maintenant, supprimez ce utilisé pour la marque et supprimez également utilisé pour les oméga d'important. Enregistrez les modifications et jetez un œil. Cela fonctionne de la même manière qu'auparavant. Vous pouvez utiliser la méthode que vous voulez. C'est à toi de décider. Ici. Vous pouvez ajouter une boîte Jack et d'autres entrées à l'aide de cette propriété de champ. Si nous voulons savoir comment procéder, vous pouvez lire la documentation sur les formats. Ici. Dans la section des exemples, vous trouverez des exemples de tous les types de formulaires. 15. BONUS : Réagir le routeur v6: Dans ce tutoriel, nous allons voir le routeur React à partir de zéro. Alors ne perdons pas de temps et lançons-nous. Ici, je crée cette nouvelle application React en utilisant l'application NP x Create React, puis je supprime tous les fichiers inutiles. Maintenant, nous installons la bibliothèque de routeurs React, ouvrons le terminal en appuyant sur Control plus bacteria et tapez npm install React router down. Si vous utilisez Yan, tapez Yan had React router dome et appuyez sur Entrée. Nous utilisons donc le routeur dom React ou créons différentes routes dans notre application. En gros, nous définissons sur quel chemin, quels composants doivent être affichés. Par exemple, nous faisons une demande de code point www plus u.com. Ensuite, nous voulons afficher le composant home. Et si nous demandons www point code bless you.com, c'est moins à propos, alors nous voulons afficher about component. Voyons maintenant la mise en œuvre. Donc tout d'abord, si vous voulez utiliser routeur dom de React dans votre projet, comment obtenir la pleine obligation avec un composant. Donc, vous savez quel composant d'application nous importons certains composants du routeur React, dom, n'est-ce pas ? Navigateur routeur en tant que routeur, et enveloppez notre JSX avec ce composant de routeur. N'oubliez pas que sans ce routeur React ne fonctionnera pas. Maintenant, pour le définir, nous avons deux autres composants. Donc des itinéraires importants, qui sont utilisés pour définir dans quelle partie vous voulez montrer que vous êtes tous des itinéraires. Je vais t'expliquer dans une seconde. Et un autre itinéraire, qui est utilisé pour définir le nom réel de notre circuit et les détails de nos composants. Ajoutons notre composant routes avant la version 6 du routeur React, ces routes sont connues sous le nom de switch. Maintenant à l'intérieur, nous ajoutons notre itinéraire. Nous devons maintenant passer deux invites ici. Le premier est mauvais, et entre ces guillemets doubles, nous écrivons notre nom de chemin. Donc pour la maison, nous n'ajoutons que moins d'avants. Nous le savons lorsque nous écrivons uniquement google.com ou n'importe quel site Web et que nous ajoutons des insultes. Italy Dido va sur la page d'accueil de ce site Web. C'est pourquoi nous n'écrivons que des barres obliques ici. Et puis nous avons l'élément égal à deux entre accolades. Nous ajoutons nos composants. Tout d'abord, créons quelques pages. Je crée donc un nouveau dossier dans SRC appelé pages. Dans ce dossier, nous créons un fichier appelé home point js et écrivons RFC pour React Boilerplate et ajoutons ici la page d'accueil. Créez maintenant un nouveau fichier appelé profiled ou JS, utilisez ce passe-partout et remplacez également la page de profil texte. Et nous créons une dernière page avec le nom users.js. Ajoutez un passe-partout et remplacez la page de texte de l'utilisateur. Revenons maintenant à notre composant d'application. Et dans l'élément, j'ajoute notre composant home et je ferme ça. Maintenant, dupliquez cette ligne deux fois de plus. 19 est le chemin qui est moins profilé et qui passe notre composant de profil. Et enfin, mais réduisez les utilisateurs et biaisez notre composant utilisateurs. Enregistrez les modifications et jetez un œil. Tu vois, c'est notre page d'accueil. Maintenant en URL, j'ai passé moins de profil et nous obtenons la page de profil. Ou si nous passons moins d'utilisateurs, alors nous obtenons la page des utilisateurs. Maintenant, créons une autre page appelée northbound point js. Et nous ajoutons un passe-partout et écrivons la page 404 introuvable. Nous allons résoudre cette page lorsque quelqu'un passe autre chose, mais que nous ne définissons pas. Revenons donc au composant de l'application et nous ajoutons une autre route et un autre chemin pour démarrer un composant element not found. Cela signifie donc que si nous passons autre chemin qui ne provient pas de ces chemins, alors affichez ce composant introuvable. Et assurez-vous que j' écris toujours ces itinéraires introuvables à la fin de tous les itinéraires. Parfois, ça gâche les autres. Si nous le déclarons en haut de la page, enregistrez les modifications et jetez-y un œil. Si nous passons ici quelque chose d'autre, nous obtenons cette page en direction du nord. Voyons maintenant quelques propriétés plus utiles de React router dom. Créons une barre de navigation simple. Permettez-moi de fermer ces autres dossiers. Je crée donc un nouveau dossier appelé components. En cela, je crée un nouveau fichier appelé ab.js à proximité. Tapez maintenant AFC et appuyez sur Entrée. Maintenant, je les supprime et n'ajoute aucune balise avec la classe à proximité. Et à l'intérieur, nous créons un tag, un additif à la page d'accueil, qui est moindre. Et le bus pour rentrer ici. Maintenant, dupliquez cette ligne deux fois de plus. Et deuxièmement, le profil et le profil de conduite ici. Maintenant, le dernier chemin est réservé aux utilisateurs et aux bons utilisateurs. Maintenant, sauvegardez ça. Et dans notre composant d'application, nous ajoutons notre composant Navbar en haut des itinéraires. Cette barre maintenant est donc fixée en haut. Et en dessous, nous voyons tous les itinéraires. Nous n'avons donc pas besoin d'ajouter maintenant, mais dans tous les composants, enregistrez les modifications et jetez un œil. Tu vois, on a tous les liens. Maintenant, lorsque nous cliquons sur l'un de ces liens vers ce chemin. Mais voyez-vous que notre candidature est refusée ? On ne voulait pas, non ? Pour cela, nous avons un composant dans le dom du routeur React, qui est lié dans le composant Navbar. Nous importons le lien du routeur React, dom, et supprimons ce tag et le lien droit vers. Maintenant, nous écrivons le chemin qui ne vaut rien, comme avec ce profil. Et il en va de même pour ces utilisateurs. Sauvegardez-le et jetez un œil. Vous voyez, maintenant que nous cliquons sur ce lien, notre page ne sera pas refoulée et le routage fonctionne sans problème. Nous pouvons maintenant améliorer cela en surlignant l'itinéraire actuel. J'ajoute quelques styles basiques à notre Nerva et l' effet de survol sur une étiquette. Vous pouvez copier les styles depuis mon dépôt GitHub. Maintenant, je veux faire en sorte que l' arrière-plan des liens d'itinéraire actuels soit noir et changer sa couleur de police. Nous avons donc besoin de savoir quel est le lien actif ici. Pour cela, nous avons un composant qui est maintenant link. Ce lien est une version avancée de ce composant de lien. Importez ça. Et maintenant, je sélectionne un lien et j'appuie sur Ctrl plus D sous Windows et Commande plus d sous Mac. Avec cela, nous créons plusieurs curseurs et remplaçons ce lien par un lien de navigation. Maintenant, ce grignotage nous donne la classe active ajoutée dans nos liens. Enregistrez les modifications et jetez un œil. Cliquez maintenant avec le bouton droit sur l'un de ces liens et allez dans Inspecter. Voir maintenant le lien en classe active vers le lien de nos utilisateurs. Si nous changeons de profil, classe active est supprimée du lien des utilisateurs, puis l' ajoute au profilage. Revenons maintenant au fichier CSS de la barre de navigation et ajoutez l'espace de la barre de navigation, un point actif, et entre accolades, ajoutez l'arrière-plan, la couleur et la couleur à f, f, e, 400. Agendas. Jetez un coup d'œil. Tu vois, on a ce joli lien actif. Nous avons maintenant quelques crochets importants qui sont très utiles dans notre application. Le premier est utilisé navigate. Dans la version précédente du routeur React. Ce crochet est connu sous le nom d'histoire des États-Unis. Donc, dans ce composant de profil, je crée un bouton appelé C, d'autres utilisateurs. Donc, quand quelqu'un clique sur ce bouton, il devrait être redirigé sur l'espace utilisateur que nous avons utilisé le hook de navigation. C'est si important, utilisez navigate from React, router, dom. Et dans notre composant, nous écrivons d' abord use navigate et stockons sa variable de valeur appelée navigate. Maintenant, je crée une nouvelle fonction appelée redirection vers les utilisateurs. Et entre accolades, nous écrivons navigate. Et nous passons notre chemin ici, qui est celui des utilisateurs de barres obliques. Et si vous n'écrivez pas ces quatre mots en moins , il redirige vers le chemin imbriqué paye, qui sera des utilisateurs de barre oblique de profil. Si nous voulons lire directement sur une autre page, ajoutez une barre oblique avant le chemin. Maintenant, dans l'événement button onclick, nous passons ce rendu à la fonction utilisateur, enregistrons les modifications et jetons un œil. Tu vois, ça fonctionne. Enfin, nous avons utilisé params hook. Dans cet exemple, nous avons le parcours de notre utilisateur dans lequel nous pouvons afficher tous les détails ou profils des utilisateurs. Ensuite, si quelqu'un clique sur un utilisateur en particulier, nous devons montrer que les utilisateurs détaillent dans une autre page. Ainsi, un itinéraire devient le dernier de l' utilisateur, qui est l'ID utilisateur. Nous passons maintenant les données des utilisateurs depuis le backend en utilisant cet ID. Alors, comment pouvons-nous définir cet itinéraire pour que je crée un nouvel itinéraire ? Mais deux utilisateurs, c'est moins l'identifiant utilisateur deux-points. Et pour l'élément, créons une nouvelle page. Créez donc un nouveau fichier dans les pages appelées détails de l'utilisateur. Et écrivez notre AFC et sauvegardez-le. Revenons maintenant au composant de l'application. Ici, nous passons le composant Détails de l'utilisateur. Donc, si quelqu'un redirige vers les utilisateurs uniquement, il rend le composant de ces utilisateurs. Et si quelqu'un redirige vers les utilisateurs moins quelque chose, alors cela rend le composant de détails utilisateur, aussi simple que cela. Voyons maintenant comment transmettre cet ID utilisateur à ce composant. Allez donc dans le composant Détails de l'utilisateur. Et ici, j'incarne, utilise les paramètres du dôme du routeur React. Maintenant, dans le composant, à droite, utilisez params et stockez-le dans une variable appelée parameters. Ces paramètres ont toutes les valeurs de nos paramètres d'itinéraire. Consolons ces participants aux ventes et jetons un coup d'œil. Vous voyez, lorsque nous redirigeons vers des utilisateurs de moins un, nous obtenons UserID vers un utilisateur. Nous pouvons donc le déstructurer et écrire l'ID utilisateur. N'oubliez pas qu'il s'agit exactement de la même variable que celle que nous passons dans notre itinéraire. Et j'affiche ici les détails de l'utilisateur de l'identifiant utilisateur. David, et jette un œil. Vous voyez, nous obtenons notre identifiant. Maintenant, nous pouvons transmettre des données depuis votre back-end en utilisant cet identifiant. J'espère donc que vous comprenez le dom du routeur React. Si nous voulons en savoir plus, vous allez consulter sa documentation. Le lien est en bas dans la description. Si vous avez des doutes, vous pouvez me le demander et je vous verrai dans le prochain tutoriel. Au revoir.