React en marche
Stoyan Stefanov
First Interactive
Préfacexiii
À propos de ce livrexiv
Conventions utilisées dans ce livrexv
Utilisation des exemples de codexv
Remerciementsxv
1. Hello world1
Installation de React1
Hello React world2
Que s'est-il passé ?4
React.createElement()5
JSX7
Installation de Babel8
Hello JSX world8
Transpilation9
Composants personnalisés10
2. Vie d'un composant11
Composant de fonction personnalisé11
Version employant JSX12
Composant de classe personnalisé13
Quelle syntaxe utiliser ?13
Propriétés14
Propriétés des composants de fonction16
Propriétés par défaut16
State17
Composant textarea18
Rendre le composant stateful19
Note sur les événements du DOM21
Gestion des événements à l'ancienne22
Gestion des événements dans React23
Syntaxe de gestion des événements24
Props et State25
Props dans l'état initial : un anti-modèle25
Accès au composant depuis l'extérieur26
Méthodes de cycle de vie27
Exemple de cycle de vie : tout journaliser29
Protection paranoïaque de l'état31
Exemple de cycle de vie : utilisation d'un composant enfant32
Gain de performance : empêchez les mises à jour de composants34
Qu'est-il arrivé aux composants de fonction ?35
3. Excel : un composant sophistiqué de tableau37
Priorité aux données37
Boucle pour lire les en-têtes du tableau38
Version concise de la boucle d'en-têtes du tableau40
Débogage de l'avertissement de la console41
Ajout d'un contenu <td>42
Types de propriétés44
Pouvez-vous améliorer le composant ?46
Tri46
Pouvez-vous améliorer le composant ?49
Indicateurs de tri dans l'interface utilisateur49
Modification des données51
Cellule modifiable52
Cellule du champ de saisie53
Enregistrement des données modifiées54
Conclusion et différences entre les DOM virtuels54
Recherche56
État et interface utilisateur58
Filtrage du contenu60
Mise à jour de la méthode save()62
Pouvez-vous améliorer la recherche ?63
Fonctionnalité de replay63
Nettoyage des gestionnaires d'événements65
Nettoyage du code66
Pouvez-vous améliorer le replay ?67
Est-ce que l'on peut procéder autrement ?68
Téléchargement des données du tableau68
Récupérer des données70
4. Composants de fonction Excel73
Petit rappel : composants de fonction et composants de classe73
Afficher les données74
Hook d'état75
Trier le tableau77
Modification des données79
Recherche81
Cycles de vie dans un monde de hooks81
Problèmes avec les méthodes de cycle de vie81
useEffect()82
Nettoyage des effets secondaires83
Cycles de vie sans problème85
useLayoutEffect()86
Hook personnalisé88
Synthèse sur le replay90
useReducer91
Fonctions de réducteur91
Actions92
Exemple de réducteur93
Test unitaire des réducteurs95
Composant Excel avec un réducteur96
5. JSX99
Deux outils99
Espaces en JSX101
Commentaires en JSX103
Entités HTML104
Anti-XSS105
Attributs spread106
Attributs spread parents-enfants107
Retourner plusieurs nouds en JSX109
Wrapper109
Fragment109
Liste110
Différences entre JSX et HTML111
Pourquoi n'y a-t-il pas de classe ?111
style est un objet111
Balises de fermeture112
Attributs en style camelCase112
Composants à espace de noms113
JSX et formulaires113
Gestionnaire onChange113
value et defaultValue116
Propriété value de <textarea>116
<select> value117
Composants contrôlés et non contrôlés118
6. Préparer le développement d'une application125
Créer une application React125
Node.js126
Installer CRA126
Générer et déployer128
Des erreurs ont été commises129
package.json et node_modules129
Examen du code130
Index130
Version modernisée de JavaScript130
CSS131
En avant pour d'autres aventures !132
7. Créer les composants de l'application133
Préparation133
Commencez à coder134
Refactoring du composant Excel135
Version 0.0.1 de la nouvelle application137
CSS138
Stockage local139
Les composants140
Découverte141
Logo et body142
Logo143
Body143
À la découverte des composants144
Composant <Button>145
Button.js146
Package classnames146
Formulaires148
<Suggest>148
Composant <Rating>150
Usine à <FormInput>152
<Form>155
<Actions>159
Boîtes de dialogue161
En-tête165
Configuration de l'application166
<Excel> : une nouvelle version améliorée167
Structure générale170
Affichage171
React.Strict et les réducteurs175
Petites fonctions d'assistance d'Excel177
8. L'application terminée183
Mise à jour de App.js186
Composant DataFlow186
Corps de DataFlow188
Le travail est terminé !190
Whinepad v2192
Contexte193
Étapes suivantes193
Données circulaires194
Fournir un contexte195
Utiliser le contexte197
Contexte dans l'en-tête198
Contexte dans le tableau de données202
Mise à jour de Discovery204
Routage206
Contexte de routage206
Utilisation de l'URL de filtrage209
Utiliser le contexte de routage dans Header211
Utilisation du contexte de routage dans la table de données212
useCallback()214
Conclusion216
Index
217