Partager cet article :

Blog
Aug 07, 20237 min read

Vue d'ensemble de React - Définition, SPA, Composants, Hooks

Vue d'ensemble de React - Définition, SPA, Composants, Hooks

Qu'est-ce que React ?

D'après la définition de documentation officielle, React est une bibliothèque Javascript déclarative, efficace et flexible pour construire des interfaces utilisateur composables. Elle encourage la création de composants d'interface utilisateur réutilisables qui présentent des données qui changent au fil du temps.

what is react illustration

React permet de créer des interfaces utilisateur modernes et réactives pour le web. Cela signifie construire des applications à page unique. Vous avez peut-être entendu parler de l'abréviation SPA, qui signifie application monopage. Cela signifie qu'au lieu de l'ancienne approche traditionnelle où chaque page est chargée par le client, qui adresse des requêtes au serveur, et où le serveur renvoie la page chargée, où tout est connecté à l'interface utilisateur, tout ce qui est lié à l'interface utilisateur se passe sur le serveur. Tout ce qui est lié à l'interface utilisateur se passe côté client avec JavaScript. Mais pourquoi React au lieu d'utiliser du JavaScript pur ? Examinons un exemple de construction d'une application dans laquelle nous devons dresser une liste de cartes et pouvons supprimer une liste de tâches avec un dialogue qui nous invite à confirmer la suppression. Nous allons comparer les solutions en JavaScript pur et en utilisant React. Dans l'exemple de gauche utilisant Javascript, nous voyons la solution impérative où nous construisons notre application étape par étape. Nous devons spécifier chaque étape. Par exemple, nous créons un bouton, nous attachons un récepteur d'événements à ce bouton, et ainsi de suite. L'approche de programmation déclarative, en revanche, est une façon d'écrire du code qui cache l'implémentation réelle à l'aide d'obstructions. Vous utilisez les éléments react pour indiquer à React les fonctions à invoquer lors du rendu de chaque composant, mais la bibliothèque décide ensuite quand les invoquer, ce qui rend le rendu des composants déclaratif. Maintenant que nous avons créé notre composant une fois, nous pouvons le réutiliser ailleurs dans l'application avec une seule ligne de code, et dans l'exemple présenté ici, nous pouvons créer plusieurs composants de cartes de tâches de manière totalement transparente.

Caractéristiques les plus couramment utilisées dans REACT

Composants fonctionnels React

react functional components
 

Pour construire l'interaction de l'interface utilisateur, nous utilisons des composants fonctionnels. Les composants nous permettent de diviser l'interface utilisateur en éléments indépendants et réutilisables et de penser à chaque élément de manière isolée. Un composant fonctionnel est une simple fonction Javascript qui accepte des accessoires comme argument et renvoie un élément React. Nous écrivons des composants en utilisant une extension de JavaScript, que nous appelons JSX. JSX nous permet d'incorporer des expressions Javascript dans des expressions HTML. Il s'agit en fait d'un code JavaScript qui renvoie une valeur. Les composants dans REACT peuvent être imbriqués dans d'autres composants, et l'arbre des composants dans REACT commence par un composant d'application en tant que parent principal, qui met en réseau d'autres composants en tant qu'enfants.

Crochets REACT

Les hooks REACT sont des fonctions qui nous permettent d'accéder à l'état REACT et aux caractéristiques du cycle de vie à partir de composants fonctionnels. Avec les hooks, vous pouvez extraire la logique d'état des composants afin qu'elle puisse être testée indépendamment et réutilisée. Les hooks nous permettent de réutiliser la logique d'état sans modifier la hiérarchie des composants, ce qui facilite le partage des hooks entre de nombreux composants ou avec la communauté. Il existe également d'autres règles à suivre lors de l'utilisation des hooks.

  • Les hooks n'exécutent que la portée des composants et sont toujours codés au niveau supérieur de la fonction REACT. Tous les crochets commencent par le mot "use".

Nous allons examiner quelques-uns des crochets présentés ici :

  • état d'utilisation
  • 'useContext' (contexte d'utilisation)
  • useEffect" (effet d'utilisation)
  • useRef
Crochet "useState

useState hook

Commençons par l'un des plus couramment utilisés, qui est le 'useState'. useState" est un crochet qui nous permet d'avoir des variables d'état dans les composants fonctionnels. Vous passez l'état initial à cette fonction, qui renvoie une variable avec la valeur de l'état actuel et une autre fonction pour mettre à jour cette valeur. Ce qu'il est important de mentionner ici à propos de 'useState', c'est qu'à chaque fois que nous mettons à jour sa valeur, les composants seront rendus, ce qui signifie que le changement sera immédiatement affiché à l'écran. Nous pouvons également utiliser ces variables d'état créées avec le crochet "useState" et les transmettre aux enfants et composants imbriqués. Cette approche est appelée "lien de propriété" et c'est l'une des façons les plus courantes de partager des données entre composants. Il existe, bien sûr, d'autres façons de gérer l'état au sein de notre application. Lorsque vous avez un dôme arborescent avec de nombreux composants, il devient difficile de transmettre des variables props aux composants frères. L'utilisation du contexte nous permet toujours de stocker les données à un seul endroit, mais ne nous oblige pas à passer les données à travers un tas de composants qui n'en ont pas besoin. Bien sûr, il y a un inconvénient à cela, car cela signifie que les composants deviennent moins réutilisables. Il existe également d'autres méthodes que nous pouvons utiliser. Par exemple, les bibliothèques tierces. L'une d'entre elles est Redux. Redux nous permet de gérer l'état en un seul endroit et de continuer à modifier notre application pour qu'elle soit plus prévisible et traçable. Il rend les changements en cours dans l'application plus faciles à comprendre, mais malheureusement, tous ces avantages s'accompagnent de contraintes et de compromis spécifiques. Souvent, les développeurs ont l'impression que l'utilisation de redux ajoute du code standard, ce qui fait que les petites choses paraissent insurmontables. Cependant, cela dépend uniquement de la décision architecturale de l'application.

Crochet "useEffect

useEffect hook

Le crochet 'useEffect' nous permet d'effectuer des effets secondaires dans les composants de fonction - la récupération de données, la mise en place d'un abonnement et la modification manuelle du domaine dans les composants react sont autant d'exemples de tels effets secondaires. Vous pouvez appeler cette opération "effets secondaires". Dans React, nous avons quelque chose appelé le cycle de vie des composants react qui est une collection d'étapes du cycle de vie des composants react. Avec le crochet 'useEffect', nous pouvons exécuter du code pour chacune de ces étapes du cycle de vie.

Examinons donc certains d'entre eux :

  • L'initialisation dans le montage est la première étape du cycle de vie des composants React où le composant est créé et inséré dans l'arbre dom.
  • L'actualisation peut se produire lorsqu'une variable d'état est mise à jour.
  • Le démontage est le moment où le composant est retiré du dom.
Crochet "useRef

useRef hook

'useRef' est utilisé lorsque nous voulons conserver la valeur qui change. Comme dans le cas du crochet "useState", il ne déclenche pas de nouveau rendu lorsque la valeur change. Souvent, nous utilisons également le crochet "useRef" pour l'attacher à un élément dom, ce qui nous permet de manipuler ces propriétés.

Crochets personnalisés

custom hooks

Nous pouvons également créer des crochets personnalisés lorsque nous voulons partager la logique entre des composants fonctionnels JavaScript et nous pouvons également utiliser des crochets, de sorte que nous pouvons essentiellement utiliser les crochets "useState" et "useEffect" lorsque nous créons nos propres crochets personnalisés.

Ressources communes de lecture

react resources

  • Des livres utiles pour les débutants :
    • Learning React Modern Patterns For Developing React Apps (Apprendre React - Modèles modernes pour développer des applications React)
    • JavaScript : Les bons côtés
  • Des cours en ligne bien structurés et bien expliqués
  • La programmation fonctionnelle avec Javascript vous aidera à mieux comprendre comment et pourquoi nous construisons des applications React modernes comme nous le faisons.

S'ABONNER À NOTRE NEWSLETTER

Partager cet article :

S'ABONNER À NOTRE NEWSLETTER

Articles de blog connexes

    Construire une équipe Agile performante : Notre approche éprouvée

    Blog

    Construire une équipe Agile performante : Notre approche éprouvée

    Découvrez comment nous construisons des équipes Agile performantes en définissant des rôles clairs, en favorisant la collaboration et en utilisant des outils flexibles.

    Écrit par Svetoslava Angelova
    Aug 27, 202411 min read
    Drupal 11 : à quoi s'attendre ? Guide complet des nouvelles fonctionnalités et des améliorations

    Blog

    Drupal 11 : à quoi s'attendre ? Guide complet des nouvelles fonctionnalités et des améliorations

    Drupal 11 est sorti ! Dans cet article, découvrez ses fonctionnalités et améliorations passionnantes. Mettez-le à jour dès maintenant pour redéfinir votre stratégie numérique avec l'aide des experts de Bulcode.

    Écrit par Svetoslava Angelova
    Aug 05, 20249 min read
    Composants d'annuaire unique dans Drupal core : Une vue d'ensemble

    Blog

    Composants d'annuaire unique dans Drupal core : Une vue d'ensemble

    Découvrez comment les composants à répertoire unique (SDC) de Drupal Core rationalisent le processus de développement en encapsulant les fichiers liés aux composants dans un répertoire unique. Découvrez les avantages des SDC et suivez un guide étape par étape pour les mettre en œuvre dans vos projets Drupal.

    Écrit par Nikolay Tsekov
    Aug 07, 20244 min read
    Tutoriel sur le module Config split pour Drupal

    Blog

    Tutoriel sur le module Config split pour Drupal

    En tant que développeurs, nous sommes souvent amenés à travailler dans des environnements différents. Cela peut parfois conduire à des problèmes (inattendus). Dans Drupal 8, nous utilisons le système de configuration qui fonctionne plutôt bien, mais il y a des cas où les paramètres pour l'environnement local et tout autre environnement devraient être différents.

    Écrit par Ivaylo Tsandev
    Aug 08, 20238 min read
    Dévoiler le duo de puissance : Next.js comme frontend Headless de Drupal 10

    Blog

    Dévoiler le duo de puissance : Next.js comme frontend Headless de Drupal 10

    Découvrez la synergie dynamique entre Drupal 10 et Next.js, alors que cette puissante combinaison redessine le paysage du développement web. Next.js, un framework open-source basé sur React, est intégré de manière transparente en tant que frontend headless de Drupal 10, offrant une pléthore d'avantages. De l'amélioration des performances grâce à des fonctionnalités telles que le fractionnement automatique du code et le rendu côté serveur à la conception flexible et aux capacités de référencement, cette collaboration permet aux développeurs de créer des applications web très performantes, évolutives et visuellement attrayantes. La gestion efficace du contenu de Drupal 10 associée à l'adaptabilité de Next.js aux tendances garantit une approche de développement de pointe, positionnant ce tandem à l'avant-garde des pratiques modernes de développement web. Embrassez l'avenir avec la combinaison Drupal 10 et Next.js, redéfinissant la façon dont nous abordons et créons des expériences en ligne dynamiques.

    Écrit par Todor Kolev
    Feb 09, 20246 min read
    Tutoriel du module Config ignore pour Drupal

    Blog

    Tutoriel du module Config ignore pour Drupal

    Parfois, nous ne voulons pas que nos configurations soient partagées dans la base de code. Que faire dans ce cas ?

    Écrit par Ivaylo Tsandev
    Aug 08, 20237 min read
    Comment nous avons optimisé la note globale d'un SSL de B à A+.

    Blog

    Comment nous avons optimisé la note globale d'un SSL de B à A+.

    L'optimisation de la mise en œuvre du protocole SSL permet à tous les clients d'ouvrir et de parcourir le site en toute sécurité, sans avertissement.

    Écrit par Mihail Shahov
    Aug 07, 20233 min read
    Comprendre les versions de Drupal et planifier une stratégie de migration

    Blog

    Comprendre les versions de Drupal et planifier une stratégie de migration

    Reconnaître les différentes versions de Drupal et maintenir votre site web à jour.

    Écrit par Svetoslava Angelova
    Aug 08, 20235 min read
    Drupal 9 convertit les images au format WebP

    Blog

    Drupal 9 convertit les images au format WebP

    WebP est capable de porter la compression des données à un niveau supérieur grâce à l'inclusion d'un mode de prédiction dans le processus JPG, ce qui permet de voir clairement comment il peut surpasser son homologue basé sur JPG. Les résultats le prouvent.

    Écrit par Vasil Boychev
    Aug 08, 20238 min read
    Qu'est-ce que la méthode Agile et pourquoi l'utiliser ?

    Blog

    Qu'est-ce que la méthode Agile et pourquoi l'utiliser ?

    La méthode Agile est une méthode de livraison de logiciels itérative et échelonnée dans le temps qui vise à fournir des logiciels progressivement tout au long du projet plutôt qu'en une seule fois vers la fin.

    Écrit par Svetoslava Angelova
    Aug 08, 20235 min read
    NVM vs NPM vs Yarn

    Blog

    NVM vs NPM vs Yarn

    Par rapport à ces trois technologies, le NVM diffère des deux autres. Node Version Manager (NVM) est utilisé pour gérer les versions de Node.js. NPM et Yarn sont des gestionnaires de paquets Node.js. Ils permettent de télécharger, d'installer et de gérer des paquets lors du développement en JavaScript.

    Écrit par Ventsislav Venkov
    Aug 07, 20235 min read
    Quel modèle d'engagement informatique vous convient le mieux ?

    Blog

    Quel modèle d'engagement informatique vous convient le mieux ?

    Prix fixe, temps et matériel, ou équipes dédiées ? Examinez attentivement les avantages et les inconvénients du modèle d'engagement pour votre projet.

    Écrit par Svetoslava Angelova
    Aug 07, 202311 min read

    PRENDRE CONTACT

    Vous avez un projet à lancer ?