
Cette première vidéo est une petite introduction avant de nous lancer dans la formation. Nous allons donc voir quel est le but est l’utilité de cette formation? Une rapide présentation de la librairie React, sa création, son utilité et sa popularité depuis 2019. Quelle sont les grandes entreprises qui utilisent React? Quels sont les prérequis pour pouvoir suivre la formation et on finira avec les outils nécessaires pour mener à bien son apprentissage.
Avant de commencer votre formation , je vous invite à noter l'adresse url du répertoire Github de l'application Marvel Quiz qu'on codera ensemble dans le troisième chapitre de cette formation.
Pensez également à télécharger le support en PDF qui accompagne la réalisation de cette application.
Bonne formation à tous :-)
Dans cette formation, j'utilise la documentation initiale de React que vous pouvez toujours consulter à l'adresse legacy.reactjs.org.
Cependant, je vous recommande de prendre en compte la nouvelle documentation disponible sur react.dev. Cette nouvelle version inclut des schémas, des illustrations, des défis et plus de 600 nouveaux exemples interactifs, et bien plus encore ;-)
Dans cette vidéo, je continue avec l’application précédemment installée (cars) afin de continuer notre étude sur la notion des Composants dans React tout en abordant les notions de PROPS et STATE dans React.
Dans cette vidéo, je continue avec l’application précédemment installée (cars) afin de finaliser notre étude sur les notions de PROPS et STATE dans React.
Maintenant que nous avons vu les composants dans React, les props et le state dans un composant de type class, nous allons revenir sur ces concepts pour les réviser une dernière fois avant d'attaquer un petit exercice.
Dans cette vidéo, nous allons corriger notre petit exercice relatif aux props et aux states
Dans cette vidéo, nous allons voir la différence entre Export Default et les Named Exports
Dans cette vidéo, je vous propose un nouvelle exercice afin de réviser quelques notions déjà étudiées.
Dans cette vidéo, nous allons corriger notre exercice sur les props et children
Dans cette vidéo, nous allons voir comment définir plusieurs composants dans un même fichier et comment muter nos props (Pas recommandé par React)
Trois fichiers que vous pouvez télécharger.
Dans cette vidéo nous allons apprendre à travailler sur les événements JavaScript dans React (Exemple: onCopy, onMouseOver, onClick, onSubmit, onChange). Nous allons également apprendre à modifier les datas existantes dans notre State. Pour cela, nous allons utiliser la méthode setState().
Notes sur la mutation du state dans un composant class et quelques mauvaises pratiques à éviter.
Dans cette deuxième partie relative au changement de state, nous allons effectuer une incrémentation de la date existante dans un state.
Dans cette vidéo, je vais reprendre l'exercice précédent afin de vous expliquer comment effectuer le destructuring d'un array ainsi qu'au niveau les arguments d'une callback function. Ensuite, on verra comment invoquer une méthode directement dans les props.
Dans cette vidéo, nous allons faire un petit exercice afin de réviser les événements React et plus précisément dans un composant fonction.
Nous cette nouvelle vidéo, nous allons corriger l'exercice relatif aux événements dans un composant React de type fonction.
Dans cette vidéo, nous allons continuer avec nos exercices sur les Props dans React et nous allons voir comment passer une fonction dans un props.
Nous cette vidéo, je vous propose un petit exercice pour réviser ce que nous avons étudié dans la vidéo précédente avec un petit challenge afin de vous inviter à réfléchir un peu ;-)
Correction de l'exercice de la vidéo précédente.
Dans cette vidéo, nous allons étudier la notion de Fragments dans React et comprendre son utilité dans une application React. Pour cela, nous allons procéder avec un petit exercice afin de vous montrer d’autres alternatives à l’élément Parent que nous avons l’habitude d’utiliser sous forme de ‘DIV’.
Dans cette vidéo, nous allons faire une petite révision afin de bien comprendre cette notion d’affectation par décomposition ou Destructuring en JavaScript ES6.
Maintenant que nous avons révisé la notion de Destructuring dans la vidéo précédente, nous allons appliquer ces connaissance dans React et voir comment profiter de cette nouveauté dans nos projets.
Les conditions dans React sont inévitables et vous devez parfaitement les maîtriser pour mener à bien vos projets. Pour cela, je vous ai concocté quelques petits exercices que, j’espère, vous aideront dans la compréhension de ce chapitre.
Dans cette vidéo nous allons voir comment afficher des images dans une application React.
Dans cette vidéo nous allons étudier les formulaires dans React. Nous allons donc faire quelques exercices pour étudier le cas d’un Input de type text, un select, et un textarea.
Dans cette vidéo, nous allons apprendre à faire du CSS dans une application React. Pour cela, nous allons faire quelques exercices afin d’évoquer le Inline CSS, les CSS dans des fichiers externes (External Style Sheets), les Modules CSS, avant de terminer par quelques Frameworks. Exemple: Nous allons apprendre à importer Bootstrap dans nos dépendances pour pourvoir l’utiliser dans notre application React. Ensuite, on verra la formidable librairie «Styled Components».
Dans ce premier exercice nous allons réviser le CSS avec Bootstrap dans React JS.
Dans cette vidéo, nous allons corriger notre premier exercice avec le CSS Bootstrap avec React JS.
Dans ce deuxième exercice, nous allons créer un Custom Button tout en profitant pour réviser le CSS et les props dans React JS.
Dans cette vidéo, nous allons corriger notre deuxième exercice relatif au custom button, le CSS et les Props dans React JS.
Dans cette vidéo, je vous présente l'exercice que vous allez devoir réaliser pour pouvoir gérer l'évènement onClick sur le custom button.
Dans cette vidéo, nous allons corriger le troisième exercice concernant l'évènement onClick sur le custom button.
Dans cette vidéo, je vous présente le package React-Bootstrap qui vous permet d'utiliser une version Bootstrap en mode "Components" bien plus adaptée à React JS.
Dans cette vidéo, nous allons attaquer un nouvel exercice afin d'appliquer le package React-Bootstrap à notre précédent exercice.
Dans cette vidéo, nous allons corriger l'exercice 4 et voir comment l'adapter au package React Bootstrap.
Dans cette vidéo, nous allons aborder les méthodes de cycle de vie d’un composant React. En effet, chaque composant React a plusieurs « méthodes de cycle de vie » que vous pouvez surcharger pour exécuter du code à des moments précis du processus sur votre application React. Cependant, avant de rentrer dans les détails, nous allons d’abord étudier les différentes phases d’un composant React qui sont: La phase de montage, la phase de mise à jour et la phase de démontage.
Dans cette vidéo nous allons continuer avec le chapitre des méthodes de cycle de vie d’un composant React et commencer avec la première phase qui est « la phase de Montage ». Dans cette phase de montage, nous avons les méthodes suivantes qui sont appelées dans cet ordre lorsqu’une instance d’un composant est créée puis insérée dans le DOM : constructor() – static getDerivedStateFromProps() – render() – componentDidMount().
Dans cette vidéo nous allons continuer avec le chapitre relatif aux méthodes de cycle de vie d’un composant React et attaquer la deuxième phase qui est « la phase de Mise à jour ». Une mise à jour est déclenchée par des changements dans les props ou l’état local. Les méthodes suivantes sont appelées dans cet ordre quand un composant se rafraîchit. Voici les méthodes accessibles au niveau de cette phase: static getDerivedStateFromProps() – shouldComponentUpdate() – render() – getSnapshotBeforeUpdate() – componentDidUpdate().
Dans cette vidéo nous allons continuer avec le chapitre relatif aux méthodes de cycle de vie d’un composant React et étudier la troisième et dernière phase qui est « la phase de Démontage » d’un composant React. Lors du démontage d’un composant React (quand un composant est retiré du DOM), la seule méthode suivante est appelée : componentWillUnmount().
Dans cette vidéo nous allons voir une des méthodes de cycle de vie d’un composant React qui s’appelle ‘getDerivedStateFromProps’. Elle est appelée juste avant d’appeler la méthode render(), aussi bien pour le montage initial d’un composant que lors des mises à jour ultérieures. Elle doit renvoyer un objet qui mette à jour l’état, ou null faute de mise à jour.
Dans cette vidéo nous allons voir une des méthodes de cycle de vie d’un composant React qui s’appelle ‘shouldComponentUpdate()’. Cette méthode est appelée avant le rendu quand de nouvelles props ou un nouvel état local sont reçues. Par défaut, elle renvoie true et pour la vaste majorité des cas vous devriez en rester là. La méthode shouldComponentUpdate() doit être utilisée pour indiquer à React que la sortie d’un composant n’est pas affectée par la modification en cours de l’état local ou des props.
Dans cette video nous allons passer à un autre chapitre nommé ‘PureComponent’ qui est similaire à React.Component. La seule différence est que React.Component n’implémente pas la méthode shouldComponentUpdate(), alors que React.PureComponent l’implémente en réalisant une comparaison de surface de l’état et des propriétés.
Dans cette nouvelle vidéo nous allons étudier la méthode memo() dans React et qui permet de transformer un composant de type fonction en un composant qui a le même comportement qu’un PureComponent. En effet, dans la vidéo précédente, nous avons appris l’utilité d’un composant class qui extends un PureComponent afin de ne pas recharger inutilement un composant dans le cas où nous n’avons pas de nouvelle data. Pour avoir le même rendu via un composant de type Fonction, nous devons alors passer par la méthode React.memeo(). Nous allons essayer de comprendre cela via quelques petits exercices.
Dans cette vidéo nous allons étudier la notion de Portail dans React. Dans la documentation de React, les Portails sont définis comme étant une excellente solution pour afficher des composants enfants dans un nœud DOM qui existe en dehors de la hiérarchie DOM du composant parent. Le but de cette vidéo est de vous expliquer cela avec un exemples de Pop-Up afin que vous puissiez comprendre cela très facilement.
Dans cette vidéo, nous allons faire quelques exercices afin de voir à quoi pourrait servir les Refs dans React et principalement le ‘createRef’. Exemple: Gérer le focus, la sélection du texte, ou la lecture de média. Lancer des animations impératives etc.
Dans cette vidéo, nous allons faire un petit exercice afin de voir à quoi pourrait servir le ‘forwardRef’. Nous allons donc reprendre l’exercice précédant et voir comment effectuer un focus sur le input directement du composant parent, sans passer par une fonction déjà existante dans le composant enfant. Pour cela, nous allons devoir expédier le ref vers le composant enfant via le React.forwardRef().
Dans cette vidéo, je vais faire un petit exercice afin de vous présenter les composants d’ordre supérieur dans React. Un composant d’ordre supérieur, Higher-Order Component ou HOC est une technique avancée dans React Js qui permet de réutiliser la logique de composants dans un seul composant super puissant. Concrètement, un composant d’ordre supérieur est une fonction qui accepte un composant et renvoie un nouveau composant plus puissant.
Dans cette vidéo nous allons voir les périmètres d’erreurs ou Error Boundaries dans React. En effet, au lieu de casser toute notre application et afficher l’horrible page d’erreur à chaque fois que nous avons un bug ou une erreur dans notre code, grâce aux périmètres d’erreurs nous allons pouvoir intercepter les erreurs JavaScript n’importe où au sein de l’arbre de composants enfants, enregistrer ces erreurs, et afficher une UI de repli à la place de l’arbre de composants qui a planté. Les périmètres d’erreurs interceptent donc les erreurs survenant au rendu, dans les méthodes de cycle de vie, ainsi que dans les constructeurs de tous les éléments de leur arborescence.
Les props de rendu permettent de partager du code entre des composants React en utilisant une prop dont la valeur est une fonction et c’est ce que nous allons voir dans cette vidéo. Nous allons donc faire un exercice pour vous démontrer comment un composant avec une prop de rendu peut prendre une fonction qui renvoie un élément React et l’appelle au lieu d’implémenter sa propre logique de rendu.
Dans cette vidéo nous allons essayer de reproduire la page des docs de React afin d’étudier le notion de Route tout en abordant Link, NavLink, Switch, Strict et Exact. Pour finir, nous verrons également comment afficher une page d’erreur dans une application React. En effet, jusqu’à présent nous avons l’habitude d’afficher tous nos composants ensembles. A présent, nous allons essayer d’afficher les composants en fonction des Routes que nous préciserons dans les URL. Cela nous permettra de créer notre première «Single-page application ». Pour rappel, une SPA (single-page application) est une application qui charge une seule et unique page HTML dans laquelle s’afficheront toutes les ressources nécessaires (telles que du JavaScript et des CSS) requises pour le bon fonctionnement de l’application. En outre, aucune interaction sur la page ou les pages ultérieures ne nécessitera d’aller-retour vers le serveur, évitant ainsi le rafraîchissement de notre application.
Dans cette vidéo nous allons faire deux exercices afin de voir comment effectuer des redirections automatiques dans React. Premièrement nous allons faire cela directement au niveau du composant parent via un propos de rendu, un Redirect et une condition. Ensuite, nous allons effectuer une autre redirection au niveau du composant qu’on ne souhaite pas afficher. Pour cela, nous allons utiliser un setTimeout() qui va se charger le lancer la redirection après 5 secondes.
Dans cette vidéo nous allons continuer avec la notion de Route dans React et voir comment les paramétrer afin d’obtenir des extensions d’URL qui, en changeant, vont nous permettre d’afficher des data spécifiques. Nous allons donc, dans cet exercice, récupérer le ID d’utilisateur passé dans l’url. Une fois cela fait, on pourra accéder aux données relative à ce dernier. Comme nous n’avons pas de data dans notre application, nous allons donc utiliser un service qui s’appelle « FakeJSON » et qui nous permettra de générer de la ‘fake data’ avec laquelle on pourra travailler. Pour pouvoir récupérer les data de fakeJSON, on aura également besoin d’installer Axios au niveau de nos dépendances.
Dans cette vidéo nous allons aborder un nouveau concept dans React qui nous permet de passer des données à travers l’arborescence du composant sans avoir à passer manuellement les props à chaque niveau. pour cela, nous allons devoir utiliser la méthode React.createContext() qui va nous permettre d’accéder aux deux objets Consumer et Provider.
Dans cette deuxième vidéo en rapport avec la notion de Context dans React nous allons revoir l’argument « defaultValue » qu’on passe comme paramètre à la méthode React.createContext(defaultValue). En effet, cet argument est uniquement utilisé lorsqu’un composant n’a pas de Provider correspondant au-dessus de lui dans l’arborescence. Ça peut être utile pour tester des composants de manière isolée sans les enrober. Vous remarquerez également que passer undefined comme valeur au Provider n’aboutit pas à ce que les composants consommateurs utilisent defaultValue. Dans cette même vidéo nous allons également voir la notion de « class.contextType » dans le cas d’une class. Nous allons donc appliquer notre context à la propriété « contextType » de notre class afin de pouvoir accéder au « Provider » et au « Consumer » dans le « this.context » de la class en question.. Notez également que nous pouvons appliquer notre context au contextType de notre class soit à l’extérieur de celle-ci, comme je l’ai démontré dans cette vidéo, [NotreClass.contextType = MyContext;] ou bien directement dans la class car il s’agit là de la propriété Static de notre class. Pour cela on fait [static contextType = MyContext;] directement dans la class.
Cette première vidéo est une rapide introduction aux nouveaux Hooks apportés à React dans sa version 16.8 nous permettant de bénéficier d’un état local et d’autres fonctionnalités de React sans devoir passer par un composant de type class.
Dans cette vidéo, nous allons aborder le premier HOOK qui nous permet désormais d’avoir un état local (State) dans un composant de type fonction. Pour cela, nous allons donc faire appel à la fonction useState qu’on importera de React. Celle-ci va nous permettre d’avoir un état local ainsi qu’une fonction qui va agir sur ce dernier pour lui apporter des modifications. Pour illustrer cela dans cette vidéo, je vais d’abord, via un simple exercice, revenir sur l’état local dans un composant de type ‘class’ avant de refaire le même exercice dans un composant de type ‘fonction’ en faisant appel au Hook d’état useState(). De cette manière, nous allons voir, non seulement la création d’un état local dans ces deux types de composants, mais aussi la manière de leur apporter des mises à jour.
Dans cette vidéo, nous allons continuer avec les Hooks d’états. Dans la précédente vidéo nous avons passé un nombre entier comme paramètre à la fonction useState() pour initialiser notre compteur. Dans la présente vidéo nous allons d’abord passer un « Array » dans lequel on aura des objets. Ensuite, on créera un autre état local avec un bootean.
Dans cette vidéo, nous allons continuer notre apprentissage des Hooks dans React et voir les Hooks d’effets qui nous permettent de créer des effets de bords dans les composants de type fonction. En d’autres termes, pensez au Hook useEffect comme à une combinaison de componentDidMount, componentDidUpdate, et componentWillUnmount. Nous avons vu cela dans les chapitres relatifs aux méthodes de cycle de vie des classes React. Pour cela, nous allons devoir importer la fonction useEffect de React et la déclarer dans le corps de notre composant de type fonction. Pour démarrer, nous allons donc créer un effet de bord après render et ne nécessitent pas de nettoyage.
Dans cette vidéo nous allons continuer avec les Hooks d’effet et voir comment gérer cela via les conditions. En effet, dans certains cas, le lancement récurrent de la fonction useEffect() peut ne pas être utile. Dans le cas, on doit trouver un moyen pour empêcher son exécution et ainsi éviter les problème de performance qui peuvent en résulter. Pour cela, je vous ai créer un petit exercice afin de vous montrer un cas de figure qui pourrait causer quelques soucis de performances à notre application et nous allons voir comment y remédier.
À présent, nous avons appris comment invoquer la fonction useEffect que lorsqu’on souhaite que celle-ci s’exécute, évitant ainsi les éventuels problèmes de performances. En effet, dans l’exemple précédent nous avons vu que l’ajout d’un Array comme deuxième argument à la fonction useEffect, celle-ci prend en considération l’état local qu’on lui passe et fait en sorte que la fonction fléchée ne s’exécute que si cet état a subit un modification. Dans cette vidéo, nous allons aller plus loin en essayant de reproduire le comportement de la méthode de cycle de vie « ComponentDidMount » via la fonction useEffect(). Ainsi, cette dernière ne s’exécutera qu’une seule fois (lors du montage du composant). Vous allez voir, on va revenir sur le Array qu’on passe comme deuxième paramètre.
Dans cette vidéo nous allons continuer avec les Hooks d’effet dans React et voir comment nettoyer les données. On va pas les laver mais, les supprimer En effet, souvent, les effets de bord créent des ressources qui nécessitent d’être nettoyées avant que le composant ne soit démonté et c’est justement le sujet du présent exercice. Pour ce faire, nous allons retourner une fonction de nettoyage dans useEffect.
Nous avons fait quelques exercices sur les Contextes dans React. Nous avons vu qu’on pouvait avoir plusieurs contextes dans un composant de type fonction. Cependant, dans les cas où on importe plusieurs contextes, ces derniers s’imbriqueront les uns dans les autres créant ainsi un code pas facile à lire et à maintenir. Bref, ce n’est pas une technique à recommander dans certains cas et c’est là qu’intervient le Hook de Contexte.
Cette vidéo est une petite introduction au hook useReducer qui, comme useState, nous permet d’avoir un state dans un composant de type fonction. La fonction useReducer(), comme la méthode reduce() en JavaScript, accepte 2 paramètres: Premièrement, un reducer sous forme de fonction qui accepte ‘un state et une action’. Deuxièmement, un état initial. la méthode useReducer, renvoie l’état actuel accompagné de la méthode dispatch.
Dans cette vidéo nous allons mettre en pratique les connaissances théorique acquises dans la vidéo d’introduction à la notion du Hook useReducer. Pour cela, nous allons commencer avec un premier exercice qui consiste à incrémenter et décrémenter un count en utilisant le Hook useReducer.
Dans cette vidéo nous allons aller un peu plus loin avec le concept du Hook useReducer et voir comment incrémenter et décrémenter deux compteurs en utilisant le Hook useReducer.
Dans cette première vidéo nous allons réviser quelques concepts déjà étudiés tout en réalisant notre petite application sur laquelle on utilisera le HOOK useCallback.
Dans cette vidéo nous allons enfin utiliser le HOOK useCallback sur l’application que nous avons créée dans la vidéo précédente. On remarquera que lors du chargement d’un composant ayant des fonctions, celles-ci effectuent une mutation et se transforment en de nouvelles fonctions. Ce changement génère quelques soucis d’optimisation que nous pouvons corriger via la Hook useCallback qui va mémoriser la fonction et évite son rechargement si les dépendances qu’on y passe, comme deuxième paramètres, ne le permettent pas.
Contrairement au Hook useCallback qui permet de mémoriser une fonction, le Hook useMemo, lui, mémorise la valeur déjà calculée par une fonction. En effet, le Hook useMemo recalculera la valeur mémorisée seulement si une des passées comme deuxième paramètres sous forme de tableau a changé. Cette optimisation permet d’éviter des calculs coûteux à chaque rendu. Vous noterez que si vous ne fournissez aucun tableau, comme deuxième paramètre à useMemo, une nouvelle valeur sera calculée à chaque appel. En outre, les effets de bord doivent passer par useEffect, et non par useMemo.
Dans cette vidéo nous allons étudier le Hook useRef qui nous permet d’accéder aux éléments que nous souhaitons manipuler au niveau du DOM ainsi que pour y stocker des valeurs dans sa propriété ‘current’. Pour illustrer cela, nous allons faire 4 exercices: Effectuer un focus sur un Input. Récupérer la valeur passée dans un Input et l’afficher dans le JSX. Incrémenter un compteur sans causer le rechargement du composant. Mettre en place un setInterval pour incrémenter un compteur et, en cliquant sur un bouton, on fait appel à clearInterval pour stopper l’incrémentation. Durant ce process, on aura besoin de faire appel à la propriété ‘current’ de notre objet généré via useRef() pour remédier à une problématique …
Le HOOK useImperativeHandle est conçu pour être utilisé en conjonction avec le HOOK forwardRef. Il permet de personnaliser l’instance qui est exposée au composant parent lors de l’utilisation de ref et c’est ce que nous allons voir dans cette vidéo.
Dans cette vidéo, nous allons voir que le look useLayoutEffect est presque identique au look useEffect. La seule différence réside dans le fait que useLayoutEffect s’exécute de manière synchrone après que toutes les mutations du DOM ont eu lieu. useLayoutEffect peut être utilisé pour inspecter la mise en page du DOM et effectuer un nouveau rendu de manière synchrone. En outre, les mises à jour planifiées dans useLayoutEffect seront traitées de manière synchrone avant que le navigateur ait pu procéder à l’affichage, ce qui n’est pas le cas avec le hook useEffect qui, lui, s’enclenche uniquement après que l’affichage a eu lieu ce qui, dans certains cas, pourrait causer des soucis d’affichage.
Dans cette vidéo, nous allons apprendre à utiliser le hook useDebugValue
Dans cette deuxième vidéo relative au hook useDebugValue, nous allons effectuer un test afin de démontrer le lancement du hook seulement si on est en mode DEV et que React Dev Tools ouvert et inspecte le hook. Cela permet de gagner en terme de performance quand on code.
Dans cette vidéo, je réponds à un inscrit qui me demande une alternative via le Async/Await pour effectuer le fetch API au niveau de notre Custom Hook useFetch.
Dans cette vidéo, nous allons étudier le Hook useDeferedValue approté à React dans la version 18.
Dans cette vidéo, nous allons aborder le nouveau hook useId() disponible avec React 18.
La réalisation de projets étant la seule façon de progresser en programmation, j’ai donc décidé de compléter ma formation React JS avec cette nouvelle section dans laquelle nous allons réaliser, ensemble, étape par étape, une petite application Marvel Quiz avec la librairie React JS. Cette longue section de 42 vidéos détaillées (Plus de 10 heures de cours) vous aidera à la fois à mettre en pratique quelques-unes des notions acquises lors de ma formation sur React JS tout en vous permettant de vous lancer dans un vrais projet React JS.
Bienvenue à la Formation React JS pour Tous - L'Ultime Formation.
La formation en Français qui vous permet de Maîtriser React JS, (avec les HOOKS), REDUX, FIREBASE, APIs et autres avec des exercices simples, accessibles à tous, ainsi qu'avec la réalisation d'une vraie application React JS qu'on codera ensemble, étape par étape, du début jusqu'à son déploiement sur Firebase !
Dans cette description, je préfère vous épargner la littérature. Si vous êtes ici c'est que vous savez déjà ce que c'est que React JS. Je vais donc aller droit au but et vous présenter concrètement le contenu de cette formation avec le plus de détails possible.
Pour un meilleur apprentissage, cette formation est composée de 3 sections:
Les bases de la librairie React JS: Cette première section est composée d’une bonne trentaine de vidéos qui vous expliquent, pas à pas, les concepts de base de React JS.
Vidéo 1: La première vidéo est une petite introduction avant de nous lancer dans la formation.
Vidéo 2: Comme indiqué dans la documentation de React, les composants permettent de découper l’interface utilisateur d’une application sous React en éléments indépendants et réutilisables. Cela nous permet de considérer chaque élément de manière isolée et réutilisable. C’est ce que nous allons étudier dans cette vidéo.
Vidéo 3: Dans cette vidéo, j’aborde avec vous les points suivants: La création d’une application React JS via CDN. La notion des composants dans REACT. Le JSX et son intérêt comparé à la méthode via JavaScript. L’utilité d’un composant parent. L’attribut ‘Class’ qui devient un ‘className’. La logique d’affichage des différents composants React dans un seul composant parent ‘App’. Comment compiler notre code ES6 via Babel afin de pouvoir l’interpréter sur notre navigateur.
Update: Exercice React avec CDN - Updated React 18.
Vidéo 4: Dans cette vidéo, nous allons voir les différentes façons d’initialiser une application React.
Vidéo 5: Dans cette vidéo, nous allons voir les différents éléments livrés dans notre application que nous avons installée via la ligne de commande ‘create-react-app’.
Update vidéo 5: Présentation de l'application initialisée - Update React 18.
Vidéo 6: Dans cette vidéo, je continue avec l’application précédemment installée (cars) afin de continuer notre étude sur la notion des Composants dans React tout en abordant les notions de PROPS et STATE dans React.
Vidéo 7: Dans cette vidéo, je continue avec l’application précédemment installée (cars) afin de finaliser notre étude sur les notions de PROPS et STATE dans React.
Vidéo 7-2: Correction exercice sur les props et les states.
Vidéo 7-3: Dans cette vidéo, nous allons voir la différence entre "Export Default" et "Named Exports"
Vidéo 7-4: Exercice pour réviser les props et children.
Vidéo 7-5: Correction de l'exercice sur les props et children.
Vidéo 7-6: Notes sur les composants et les props.
Vidéo 8: Dans cette vidéo nous allons apprendre à travailler sur les événements JavaScript dans React.
Vidéo 9: Dans cette deuxième partie relative au changement de state, nous allons effectuer une incrémentation de la date existante dans un state.
Vidéo 9-1: Destructuring array et callback function + invoquer une méthode dans les props.
Vidéo 9-2: Dans cette vidéo, nous allons faire un petit exercice afin de réviser les événements React et plus précisément dans un composant fonction.
Vidéo 9-3: Nous cette nouvelle vidéo, nous allons corriger l’exercice relatif aux événements dans un composant de type fonction.
Vidéo 10: Dans cette vidéo, nous allons continuer avec nos exercices sur les Props dans React et nous allons voir comment passer une fonction dans un props.
Vidéo 10-1: Exercice – Passer une fonction dans props.
Vidéo 10-2: Correction de l'exercice.
Vidéo 11: Dans cette vidéo, nous allons étudier la notion de Fragments dans React et comprendre son utilité dans une application React.
Vidéo 12: Dans cette vidéo, nous allons faire une petite révision afin de bien comprendre cette notion d’affectation par décomposition ou Destructuring en JavaScript ES6.
Vidéo 13: Dans cette vidéo, nous allons appliquer ces connaissance relatives au destructuring dans React.
Vidéo 14: Dans cette vidéo, je vous ai concocté quelques petits exercices pour vous expliquer les conditions dans React.
Vidéo 15: Dans cette vidéo nous allons voir comment afficher des images dans une application React.
Vidéo 16: Dans cette vidéo nous allons étudier les formulaires dans React.
Vidéo 17: Dans cette vidéo, nous allons apprendre à faire du CSS dans une application React.
Vidéo 17-2: Exercice 1 – CSS Bootstrap.
Vidéo 17-3: Correction de l'exercice 1.
Vidéo 17-4: Exercice 2 – CSS et Props d’un Custom Button.
Vidéo 17-5: Correction de l'exercice 2.
Vidéo 17-6: Exercice 3 – Gérer le onClick sur le custom button.
Vidéo 17-7: Correction de l'exercice 3.
Vidéo 17-8: Présentation du package React-Bootstrap.
Vidéo 17-9: Exercice 4: React-Bootstrap.
Vidéo 17-10: Correction de l'exercice 4.
QUIZ 1: (10 Questions QCM)
Vidéo 18: Dans cette vidéo, nous allons aborder les méthodes de cycle de vie d’un composant React.
Vidéo 19: Dans cette vidéo nous allons continuer avec le chapitre des méthodes de cycle de vie d’un composant React et commencer avec la première phase qui est « la phase de Montage ».
Vidéo 20: Dans cette vidéo nous allons continuer avec le chapitre relatif aux méthodes de cycle de vie d’un composant React et attaquer la deuxième phase qui est « la phase de Mise à jour ».
Vidéo 21: Dans cette vidéo nous allons continuer avec le chapitre relatif aux méthodes de cycle de vie d’un composant React et étudier la troisième et dernière phase qui est « la phase de Démontage » d’un composant React.
Vidéo 22: Dans cette vidéo nous allons voir une des méthodes de cycle de vie d’un composant React qui s’appelle getDerivedStateFromProps.
Vidéo 23: Dans cette vidéo nous allons voir une des méthodes de cycle de vie d’un composant React qui s’appelle shouldComponentUpdate().
QUIZ 2: (20 Questions QCM)
Vidéo 24: Dans cette video nous allons passer à un autre chapitre nommé ‘PureComponent’ qui est similaire à React.Component.
Vidéo 25: Dans cette nouvelle vidéo nous allons étudier la méthode memo() dans React et qui permet de transformer un composant de type fonction en un composant qui a le même comportement qu’un PureComponent.
Vidéo 26: Dans cette vidéo nous allons étudier la notion de Portail dans React.
Vidéo 28: Dans cette vidéo, nous allons faire un petit exercice afin de voir à quoi pourrait servir le ‘forwardRef’.
Vidéo 29: Dans cette vidéo, je vais faire un petit exercice afin de vous présenter les composants d’ordre supérieur dans React.
Vidéo 30: Dans cette vidéo nous allons voir les périmètres d’erreurs ou Error Boundaries dans React.
Vidéo 31: Les props de rendu permettent de partager du code entre des composants React en utilisant une prop dont la valeur est une fonction et c’est ce que nous allons voir dans cette vidéo.
Vidéo 32: Dans cette vidéo nous allons essayer de reproduire la page des docs de React afin d’étudier le notion de Route tout en abordant Link, NavLink, Switch, Strict et Exact. On verra également comment afficher une page d’erreur dans une application React.
Vidéo 33: Dans cette vidéo nous allons faire deux exercices afin de voir comment effectuer des redirections automatiques dans React.
Vidéo 34: Dans cette vidéo nous allons continuer avec la notion de Route dans React et voir comment les paramétrer afin d’obtenir des extensions d’URL qui, en changeant, vont nous permettre d’afficher des data spécifiques.
Vidéo 35: Dans cette vidéo nous allons aborder un nouveau concept dans React qui nous permet de passer des données à travers l’arborescence du composant sans avoir à passer manuellement les props à chaque niveau.
Vidéo 36: Dans cette deuxième vidéo en rapport avec la notion de Context dans React nous allons revoir l’argument « defaultValue » qu’on passe comme paramètre à la méthode React.createContext(defaultValue).
Les Hooks Nouveaux.
Vidéo 37: Cette première vidéo est une rapide introduction aux nouveaux Hooks apportés à React dans sa version 16.8 nous permettant de bénéficier d’un état local et d’autres fonctionnalités de React sans devoir passer par un composant de type class.
Vidéo 38: Dans cette vidéo, nous allons aborder le premier HOOK qui nous permet désormais d’avoir un état local (State) dans un composant de type fonction.
Vidéo 39: Dans cette vidéo, nous allons continuer avec les Hooks d’états. Dans la précédente vidéo nous avons passé un nombre entier comme paramètre à la fonction useState() pour initialiser notre compteur.
Vidéo 40: Dans cette vidéo, nous allons continuer notre apprentissage des Hooks dans React et voir les Hooks d’effets qui nous permettent de créer des effets de bords dans les composants de type fonction.
Vidéo 41: Dans cette vidéo nous allons continuer avec les Hooks d’effet et voir comment gérer cela via les conditions.
Vidéo 42: Dans cette vidéo, nous allons aller plus loin en essayant de reproduire le comportement de la méthode de cycle de vie « ComponentDidMount » via la fonction useEffect().
Vidéo 43: Dans cette vidéo nous allons continuer avec les Hooks d’effet dans React et voir comment nettoyer les données.
Vidéo 44: Nous avons fait quelques exercices sur les Contextes dans React. Nous avons vu qu’on pouvait avoir plusieurs contextes dans un composant de type fonction. Cependant, dans les cas où on importe plusieurs contextes, ces derniers s’imbriqueront les uns dans les autres créant ainsi un code pas facile à lire et à maintenir. Bref, ce n’est pas une technique à recommander dans certains cas et c’est là qu’intervient le Hook de Contexte.
Vidéo 45: Cette vidéo est une petite introduction au hook useReducer qui, comme useState, nous permet d’avoir un state dans un composant de type fonction.
Vidéo 46: Dans cette vidéo nous allons mettre en pratique les connaissances théorique acquises dans la vidéo d’introduction à la notion du Hook useReducer.
Vidéo 47: Dans cette vidéo nous allons aller un peu plus loin avec le concept du Hook useReducer et voir comment incrémenter et décrémenter deux compteurs en utilisant le Hook useReducer.
Vidéo 48: Dans cette première vidéo nous allons réviser quelques concepts déjà étudiés tout en réalisant notre petite application sur laquelle on utilisera le HOOK useCallback.
Vidéo 49: Dans cette vidéo nous allons enfin utiliser le HOOK useCallback sur l’application que nous avons créée dans la vidéo précédente.
Vidéo 50: Contrairement au Hook useCallback qui permet de mémoriser une fonction, le Hook useMemo, lui, mémorise la valeur déjà calculée par une fonction et c'est ce que nous allons voir dans cette vidéo.
Vidéo 51: Dans cette vidéo nous allons étudier le Hook useRef qui nous permet d’accéder aux éléments que nous souhaitons manipuler au niveau du DOM ainsi que pour y stocker des valeurs dans sa propriété ‘current’.
Vidéo 52: Le HOOK useImperativeHandle est conçu pour être utilisé en conjonction avec le HOOK forwardRef. Il permet de personnaliser l’instance qui est exposée au composant parent lors de l’utilisation de ref et c’est ce que nous allons voir dans cette vidéo.
Vidéo 53: Dans cette vidéo, nous allons voir que le look useLayoutEffect est presque identique au look useEffect. La seule différence réside dans le fait que useLayoutEffect s’exécute de manière synchrone après que toutes les mutations du DOM ont eu lieu.
Vidéo 54: Custom Hooks - Partie 1. Dans ces 6 vidéos, nous allons apprendre à créer nos propre HOOKS.
Vidéo 55: Custom Hooks - Partie 2.
Vidéo 56: Custom Hooks - Partie 3.
Vidéo 57: Custom Hooks - Partie 4.
Vidéo 58: Custom Hooks - Partie 5.
Vidéo 59: Custom Hooks - Partie 6.
Vidéo 60: Dans cette vidéo, nous allons apprendre à travailler avec le hook useDebugValue.
Vidéo 61: Dans cette deuxième vidéo, nous allons tester le useDebugValue afin de voir concrètement son lancement.
Vidéo 62: Voir le Custom Hook useFetch avec Async/Await.
Vidéo 63: Aborder le nouveau hook useTransition apporté à React dans la version 18.
Vidéo 64: Dans cette vidéo, on continue notre exercice sur le hook useTransition.
Vidéo 65: Aborder le nouveau hook useDeferedValue (React >=18.0.0)
Vidéo 66: Aborder le nouveau hook useId (React >=18.0.0)
Concepts de React - Suite
React.lazy & React.Suspense - Partie 1
React.lazy & React.Suspense - Partie 2
Présentation des PropsTypes
Corriger les alertes EsLint via propTypes
Exercice: CustomButton - CustomTable avec les propTypes
Exercice pour transformer les composants class en fonctions dans Goku contre Vegeta.
Coder Une Application React de A à Z (MARVEL QUIZ)
La réalisation de projets étant la seule façon de progresser en programmation, j’ai donc décidé de compléter cette formation React JS pour débutants avec une nouvelle section dans laquelle nous allons réaliser, ensemble, étape par étape, une application React Js nommée "Marvel Quiz".
Cette longue section de 42 vidéos détaillées (Plus de 10 heures de cours) vous aidera à la fois à mettre en pratique quelques-unes des notions acquises lors de ma formation sur React JS tout en vous permettant de vous lancer dans un vrais projet React JS. A la fin de cette formation, vous serez parfaitement capables d’intervenir sur n’importe quel projet sous React JS sans difficulté.
Maîtriser REDUX avec React JS
Dans cette nouvelle section, je vous apprendrai tout ce que vous devez savoir sur REDUX et comment l'utiliser dans vos application REACT. Sans trop de bla-bla, je vais aller droit au but et vous indiquer clairement ce que vous allez apprendre:
Vidéo 1: Dans la première vidéo d’introduction, je vous explique, d’une manière globale et théorique, le concept de Redux. On verra pourquoi utiliser cette bibliothèque, est-elle obligatoire? On abordera les notions indispensables à retenir, et on finira avec les prérequis et les outils indispensables avant de se lancer dans la formation.
Vidéo 2: Dans cette vidéo, nous allons étudier principalement les actions dans Redux. On verra que ces actions sont des objets ayant la propriété type et qu’on peut générer vis des fonctions de création d’action « Action Creator ».
Vidéo 3: Dans cette vidéo, nous allons voir le Reducer dans Redux. On verra que ce dernier est une fonction pure (pure function) qui accepte deux arguments (prevState et l’action). Ce Reducer est le moyen qui va nous permettre de manipuler notre Redux Store.
Vidéo 4: Dans cette vidéo, nous allons créer notre Redux Store. Pour cela, on va devoir utiliser la méthode createStore() à laquelle nous allons devoir passer notre Reducer en tant que « argument ». createStore(monReducer).
Vidéo 5: Dans cette vidéo, nous allons voir comment gérer deux actions au niveau de notre reducer (partie 1).
Vidéo 6: Dans cette vidéo, nous allons continuer avec la gestion de plusieurs actions via différents reducers.
Vidéo 7: Dans cette vidéo, nous allons mettre en pratique les notions de Redux étudiées jusqu’ici dans une application React JS. Pour cela, on aura besoin de la bibliothèque React-Redux que nous allons devoir installer dans nos dépendances via NPM.
Vidéo 7-1: Maintenant que nous avons vu les composants dans React, les props et le state dans un composant de type class, nous allons revenir, dans cette vidéo, sur ces concepts pour les réviser une dernière fois avant d'attaquer un petit exercice.
Vidéo 7.2: Dans cette vidéo, nous allons corriger notre petit exercice relatif aux props et states
Vidéo 8: Dans cette vidéo, nous allons continuer la mise en pratique des notions Redux dans une application React. Nous allons donc obtenir Redux dans notre application React. Pour cela, nous allons devoir installer le package « redux » au niveau des dépendances. Cela va nous permettre de créer notre Redux Store dans notre application. Nous allons également devoir installer le package « react-redux » pour l’avoir dans nos dépendances React afin de nous permettre de connecter les deux librairies « React et Redux ». Cette dépendance va nous permettre via le « Provider » de passer le redux store via un props pour qu’il puisse être accessible partout dans notre application React. Cela vous semble compliquer? Ne vous inquiétez pas, c’est un véritable jeu d’enfant.
Vidéo 9: Dans cette vidéo, nous allons continuer la mise en pratique des notions Redux dans une application React. Nous allons donc importer la méthode connect de react-redux qui va nous permettre de générer un composant d’ordre supérieur (Higher Order Component) afin de pourvoir accéder au Redux Store et y récupérer des données. Pour cela, nous allons devoir passer un argument « mapStateToProps » à la méthode connect. C’est une fonction qui va nous permettre de récupérer le state en tant que props.
Vidéo 10: Dans cette vidéo, nous allons passer à la méthode connect un deuxième argument « mapDispatchToProps » qui est une fonction qui va nous permettre de passer la méthode dispatch en tant que props. Il suffit alors d’importer l’action qu’on souhaite dispatcher et la passer en tant que argument à notre dispatch.
Vidéo 11: Dans cette vidéo, nous allons apprendre à utiliser le Hook useSelector comme alternative à mapStateToProps. Pour cela, on aura plus besoin de passer par le composant d’ordre supérieur connect().
Vidéo 12: Dans cette vidéo, nous allons apprendre à utiliser le Hook useDispatch comme alternative à mapDispatchToProps. Là aussi, on aura plus besoin de passer par le composant d’ordre supérieur connect().
Vidéo 13: Dans cette vidéo, nous allons jeter un coup d’oeil à la documentation Redux et celle de React-Redux et voir l’intérêt de la documentation en programmation.
Vidéo 14: Dans cette vidéo, nous allons créer une nouvelle action qui sera gérée via un second reducer. Cela va nous permettre d’apprendre à combiner plusieurs reducers dans une application React.
Vidéo 15: Dans cette vidéo, nous allons découvrir le payload dans les actions. En effet, jusqu’ici, nous avons vu simplement le type dans l’objet de notre action. En plus de ce payload, nous pouvons également spécifier une autre propriété.
Vidéo 16: Dans cette vidéo, nous allons voir, d’une manière théorique, comment effectuer des « get requests » et gérer les actions asynchrones via le middleware thunk.
Vidéo 17: Dans cette vidéo, nous allons voir concrètement comment effectuer des get request et gérer les actions asynchrones via le middleware thunk.
Vidéo 18: Dans cette vidéo, nous allons voir comment installer et utiliser l’extension Redux Devtools.
Coder une application BOOKS avec React, Redux, Google Books API, Axios, LocalStorage
A partir de cette vidéo, nous allons attaquer une nouvelle section afin de coder ensemble une petite application REACT avec REDUX afin de mettre en pratique les concepts étudiés tout au long de cette formation.
On verra donc comment dispatcher des actions pour créer un livre dans notre bibliothèque BOOKS.
On verra comment dispatcher une autre action pour supprimer un livre bien spécifique ou effacer tous les livres existants.
Ces actions dispatchées seront gérées via des reducers.
On verra comment récupérer les livres au niveau de l’API Google Books. Pour cela, on aura besoin de axios et du MiddleWare « Thunk ».
Pour pouvoir interroger l’API Google Books, nous allons devoir préciser le sujet du livre dans un moteur de recherche.
Une fois la requête envoyée, on affiche un spinner pour indiquer à l’utilisateur qu’on est en train d’interroger l’API.
Tout cela va être géré via le Reducer qui capte une action bien spécifique par rapport à ce cas.
Une fois les livres récupérés, on dispachera une autre action pour enregistrer les livres et les afficher dans une liste désordonnée.
En cliquant sur un élément dans cette liste, on va déployer une section pour accéder aux informations du livre sélectionné.
On affichera un thumbnail de la couverture du livre, le titre du livre, l’auteur, et une petite description.
Sous cette section, on aura deux boutons. Le premier bouton permet d’ouvrir un nouvel onglet afin de nous donner accès au livre directement sur Google Books. Le deuxième, nous permet de l’enregistrer dans notre bibliothèque. Là aussi on dispachera une action on passant un objet dans le type pour que le Reducer puisse mettre à jour le state et inclure le livre parmi ceux déjà existants dans la bibliothèque Books.
Pour ne pas perdre les livres enregistrés, ces derniers seront enregistrés dans le localStorage.
=== > Depuis juin 2025, plusieurs vidéos ont été ajoutées à cette formation pour vous permettre d’explorer et de maîtriser Redux Toolkit !
- > Plusieurs exercices
- > Une application codée de A à Z
- > Plusieurs QUIZs
=== > Depuis juillet 2025, plusieurs vidéos supplémentaires ont été ajoutées à cette formation pour vous permettre d’explorer en profondeur les tests de vos applications React avec React Testing Library et Jest/Vitest.
- > Au total : 17 heures de vidéos, d’exercices, de quiz et le développement + test complet d’une application de A à Z !
INFOS, UPDATES & AUTRES
Dans cette section, je vous présente les mises à jours et autres contenus supplémentaires apportés à cette formation.
Je vous souhaite une très bonne formation ;-)
DonkeyGeek.
PS: Je ferai de mon mieux pour répondre à vos questions ayant un lien direct au contenu de cette formation. En revanche, je ne suis pas habilité à intervenir sur vos projets personnels ou ceux sur lesquels vous travaillez en entreprise.