Testez-vous sur le lifecycle de React

Testez-vous sur le lifecycle de React
Alexandre P. dans Dev - mis à jour le 11-07-2022

Cela fait un petit moment que je travaille avec React.js. J'ai été candidat à des entretiens sur cette techno et j'ai moi même fait passer des entretiens. Si on testait un peu nos connaissances ?

Petit historique de React.js

React.js est une librairie fascinante. Elle a apporté une organisation et la capacité à réutiliser du code pour la composition des pages webs. Son approche orienté composant fait d'elle la reine des librairies pour coder les vues.

Notez que j'aime aussi beaucoup Angular, un peu moins Vue.js mais pour des raisons personnelles d'organisation de code.

D'après Wikipedia , les équipes de Facebook travaillaient sur React depuis 2013. Ce n'est qu'à partir de 2017 ou le marché a commencé à s'ouvrir à cette technologie, jusqu'alors utilisée par les équipes de Facebook elle même.

Pour ma part, j'ai commencé à utiliser React vers 2016, via des formations que j'avais acheté sur Udemy car j'étais en pleine recherche de performance et d'amélioration quant à mon organisation frontend. Avant mon passage à React, j'étais sur AngularJS et juste avant j'étais toujours sur du jQuery...

A cette époque React.js n'avais absolument rien à voir avec la librairie mature que l'on connait aujourd'hui. on devait utiliser des .createComponent() en ES5...

Plus tard, j'ai beaucoup aimé le passage à l'ES6 via les class components

class MyComponent extends Component//... 
}

A ce moment là, j'étais en poste dans une société de média, et comme j'en faisait depuis maintenant un an, j'ai formé mes collègues à cette librairie. Ils ont beaucoup aimé et l'ont adopté par la suite.

La librairie a connu beaucoup de transformations depuis mes débuts dans et lorsque ces changements ont eu lieu, j'étais déjà en production sur des sites grand public. C'est pourquoi, je vais vous donner ici, ce que je pense être la clé pour bien maîtriser React.

Le lifecycle

Ou encore le cycle de vie, concerne toutes les étapes par lesquelles notre interpreteur JS va passer et effectuer des opérations.

Par exemple :

  • Avant le rendu
  • Après le rendu

La maîtrise du lifecycle est une notion importante afin de bien comprendre React et d'être capable d'en faire ce que l'on veut. Les React class components ont plusieurs méthodes qui permettent d'effectuer certaines opérations pendant son lifecycle.

Questions

Avec les class components, quelle méthode permet d'effectuer des opérations avant Render ?

Par quoi peut-on remplacer cette méthode depuis les Functional components ?

Comment faire un équialent de componentDidMount() sur un Functional component aujourd'hui ?

Que peut-on retourner dans un hook useEffect et pourquoi le fait-on ?

A quoi sert l'attribut key en React ?

FAQ

Qu'est-ce que le lifecycle dans React et pourquoi est-ce si important ?

Le lifecycle désigne toutes les étapes par lesquelles passe un composant React, comme avant ou après son rendu. Le maîtriser permet de contrôler précisément ce que fait votre composant à chaque moment de son existence et d'éviter des bugs subtils liés au timing d'exécution.

Comment reproduire componentDidMount avec un functional component ?

Il suffit d'utiliser le hook useEffect avec un tableau de dépendances vide en second argument. Le code à l'intérieur ne s'exécutera alors qu'une seule fois, juste après le premier rendu du composant.

À quoi sert la fonction de retour dans un useEffect ?

Cette fonction est l'équivalent de componentWillUnmount : elle s'exécute quand le composant est retiré du DOM. Elle sert principalement à nettoyer des listeners ajoutés dans l'effet, pour éviter que les callbacks s'accumulent en mémoire.

Peut-on remplacer componentWillMount avec un hook dans les functional components ?

Non, il n'y a pas d'équivalent direct. Tout ce qui devait s'exécuter avant le rendu peut simplement être placé dans le corps de la fonction, avant le return, ce qui est d'ailleurs plus lisible.

À quoi sert vraiment l'attribut key en React, au-delà des listes ?

Key permet à React d'identifier un nœud précis dans le DOM virtuel pour optimiser ses mises à jour. Il ne se limite pas aux boucles : dans des frameworks comme Next.js, il sert aussi à localiser un nœud commun entre deux rendus et à le remplacer si nécessaire.

#react#lifecycle#questions

user picture

Alexandre P.

Développeur passionné depuis plus de 20 ans, j'ai une appétence particulière pour les défis techniques et changer de technologie ne me fait pas froid aux yeux.