|
1 | 1 | <h1 align="center">
|
2 | 2 | <br>
|
3 |
| - <img src ="./assets/readme-logo-300-no-version.png" width="300"/> |
| 3 | + <img src ="./assets/logos/chromeExtensionIcons/marqueePromoTitle.png"/> |
4 | 4 | <br>
|
5 | 5 | <br>
|
6 | 6 | Outil de Performance pour React
|
|
36 | 36 | <br>
|
37 | 37 |
|
38 | 38 | <p align="center">
|
39 |
| -<img src="./assets/v20/Overview.gif" /> |
| 39 | +<img src="./assets/gifs/GeneralDemoGif.gif" /> |
40 | 40 | </p>
|
41 | 41 |
|
42 | 42 | <p align="center">
|
43 |
| - <a href="#how-to-use">Manuel</a> • <a href="#features">Caractéristiques</a> • <a href="https://reactime.dev">Website</a> • <a href="#readmore">En savoir plus</a> |
| 43 | + <a href="https://www.reacti.me/">Website</a> |
44 | 44 | </p>
|
45 | 45 |
|
46 |
| -Actuellement, Reactime est compatible avec les applications React qui utilisent des composants à état (stateful) et Hooks, avec un support en version bêta de Recoil et de pour le Context API. |
| 46 | +## <h1>Caractéristiques</h1> |
47 | 47 |
|
48 |
| -<b>Reactime 18.0</b> introduit une gamme de fonctionnalités nouvelles et améliorées visant à optimiser les performances et à améliorer la compatibilité. Avec le support de Next.js et de Remix, une couverture de test accrue (93% backend, le frontend a encore besoin de plus de tests), ainsi que des améliorations structurelles de la base de code. De plus, nous sommes fiers d'annoncer le lancement de notre site web récemment redessiné, qui sert de centre pour les dernières mises à jour et informations sur Reactime. Pour aider à la débogage, nous avons inclus des applications de démonstration pour Next.js et Remix, permettant aux futurs itérateurs de tester et dépanner avec plus de facilité et d'efficacité. |
| 48 | +### 🔹 L'Exposition |
49 | 49 |
|
50 |
| -<b>Reactime version 7.0</b> beta peut vous aider à éviter les ré-rendus inutiles. Identifier les rendus inutiles dans vos applications React est le point de départ idéal pour identifier la plupart des problèmes de performances. |
51 |
| -La version beta 7.0 de Reactime corrige les bugs des anciennes versions et intègre des visualisations améliorées pour les relations entre les composants. |
52 |
| -Reactime 7.0 inclut également une documentation [typedoc](https://typedoc.org/api/) plus approfondie pour les développeurs souhaitant contribuer au code source. |
| 50 | +Vous pouvez afficher la structure des fichiers de votre application et cliquer sur un instantané pour afficher l'état de votre application. L'état peut être visualisé dans un graphique de composants, une arborescence JSON ou un graphique de performances. Les instantanés peuvent être comparés à l'instantané précédent, qui peut être visualisé en mode Diff. |
| 51 | +<br> |
| 52 | +<br> |
53 | 53 |
|
54 |
| -Après avoir installé Reactime, vous pouvez tester ses fonctionnalités avec votre application React en mode développement. |
| 54 | +<p align="center"> |
| 55 | +<img src="./assets/gifs/TimeTravelGif.gif" /> |
| 56 | +</p> |
| 57 | +<br> |
55 | 58 |
|
56 |
| -Veuillez noter que la fonction de saut de temps fonctionnera UNIQUEMENT lorsque votre application s'exécute en mode développement. En mode production, vous pouvez afficher la carte des composants de votre application, mais aucune fonctionnalité supplémentaire. |
| 59 | +### 🔹 Enregistrement |
57 | 60 |
|
58 |
| -## <b>Installation</b> |
| 61 | +Chaque fois que l'état est modifié (chaque fois que setState, useState est appelé), cette extension créera un instantané de l'arborescence d'état actuelle et l'enregistrera. Chaque instantané sera affiché dans Chrome DevTools sous le panneau Reactime. |
| 62 | +<br> |
| 63 | +<br> |
59 | 64 |
|
60 |
| -Pour commencer, installer l’[extension](https://chrome.google.com/webstore/detail/reactime/cgibknllccemdnfhfpmjhffpjfeidjga) Reactime depuis le Chrome Web Store. |
| 65 | +### 🔹 Série d'Instantanés et Comparaison d'Actions |
61 | 66 |
|
62 |
| -REMARQUE: L'[extension](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en) React Developer Tools est également requise pour que Reactime s'exécute, si vous ne l'avez pas déjà installé sur votre navigateur. |
| 67 | +Vous pouvez enregistrer une série d'instantanés d'état et l'utilizer pour analyser les changements dans les performances de rendu des composants entre la série d'instantanés actuelle et la série précédente. Vous pouvez également nommer les instantanés spécifiquement et comparer tous les instantanés avec le même nom. |
| 68 | +<br> |
| 69 | +<br> |
63 | 70 |
|
64 |
| -### <b>Installation Alternative</b> |
| 71 | +### 🔹 Comparaison des Composants |
65 | 72 |
|
66 |
| -Utilisez `src/extension/build/build.zip` pour une installation manuelle en [mode Développeur](https://developer.chrome.com/extensions/faq#faq-dev-01). Activez "Autoriser l'accès aux URL de fichiers" dans la page des détails de l'extension si vous effectuez un test local. |
| 73 | +Lorsque vous avez sélectionné un instantané, un visualisation des composants individuels de l'instantané sera affichée. Cela peut être fait sous le même onglet de performances où les instantanés sont rendus. Vous pouvez également voir les détails d'un composant lorsque vous le survolez avec votre souris. |
| 74 | +<br> |
| 75 | +<br> |
67 | 76 |
|
68 |
| -## <b>Manuel</b> |
| 77 | +### 🔹 Importer/Exporter des Instantanés |
69 | 78 |
|
70 |
| -Après avoir installé l’extension Chrome Reactime, ouvrez votre application dans le navigateur. |
| 79 | +Vous pouvez exporter les instantanés sous forme de fichier JSON et les importer pour accéder aux arborescences d'état sur différentes sessions. |
| 80 | +<br> |
| 81 | +<br> |
71 | 82 |
|
72 |
| -Ensuite, ouvrez vos Chrome DevTools et accédez au panneau Reactime. |
| 83 | +<p align="center"> |
| 84 | +<img src="./assets/gifs/importExport_v22.gif" /> |
| 85 | +</p> |
| 86 | +<br> |
73 | 87 |
|
74 |
| -## <b>Diagnostic des anomalies</b> |
| 88 | +### 🔹 Reconnexion et Statut |
75 | 89 |
|
76 |
| -### <b>Que faire quand Reactime ne trouve pas d’application React?</b> |
| 90 | +Si Reactime se déconnecte de l'application que vous surveillez, cliquez sur le bouton « Reconnect » pour reprendre votre travail. Il y a un petit cercle sur le bouton. Il sera vert si vous êtes connecté et rouge si vous êtes déconnecté. |
| 91 | +<br> |
| 92 | +<br> |
77 | 93 |
|
78 |
| -Reactime s'exécute initialement à l'aide du hook global des outils de développement de l'API Chrome. Leur chargement dans Chrome peut prendre du temps. Essayez d'actualiser votre application plusieurs fois jusqu'à ce que Reactime s'exécute. |
| 94 | +<p align="center"> |
| 95 | +<img src="./assets/gifs/ReconnectGif22.gif" /> |
| 96 | +</p> |
| 97 | +<br> |
79 | 98 |
|
80 |
| -### <b>Un écran noir s’affiche à la place de l’extension Reactime</b> |
| 99 | +### 🔹 Optimisation du Rendu |
81 | 100 |
|
82 |
| -Essayez d'actualiser l'application que vous souhaitez tester et actualisez les DevTools en cliquant sur le bouton droit de la souris «Recharger le cadre». |
| 101 | +L'un des problèmes les plus courants affectant les performances dans React est rednu plusieurs fois. Ce problème peut être résolu en vérifiant vos rendus dans le Onglet Performances dans Chrome DevTools sous le panneau Reactime. |
| 102 | +<br> |
| 103 | +<br> |
83 | 104 |
|
84 |
| -### <b>J’ai trouvé un bug dans Reactime</b> |
| 105 | +### 🔹 Jumping |
85 | 106 |
|
86 |
| -Reactime est un projet open source, et toute aide de vore part sera grandement appréciée pour nous aider à améliorer l'expérience utilisateur. Veuillez créer une pull request (ou un problème) pour proposer et collaborer sur les modifications apportées à un référentiel. |
| 107 | +Un utilisateur peut accéder à n'importe quel instantané précédemment enregistré à l'aide de la barre latérale d'actions. Si un utilisateur appuie sur le bouton « Jump » sur un instantané, il pourra voir les informations d'état à partir du moment où cet instantané a été créé pour la première fois. |
| 108 | +<br> |
| 109 | +<br> |
| 110 | + |
| 111 | +### 🔹 Gatsby |
| 112 | + |
| 113 | +Reactime offre un support complet pour les applications Gatsby. |
| 114 | +<br> |
| 115 | +<br> |
| 116 | + |
| 117 | +### 🔹 Next.js |
87 | 118 |
|
88 |
| -## <b>Caractéristiques</b> |
| 119 | +Reactime propose des outils de débogage et de performances pour les applications Next.js : débogage de voyage dans le temps, évitant les rendus de composants inutiles et rendant votre application plus rapide. |
| 120 | +<br> |
| 121 | +<br> |
| 122 | + |
| 123 | +### 🔹 Remix |
| 124 | + |
| 125 | +Reactime propose des outils de débogage et de performances pour les applications Remix (en version bêta). |
| 126 | +<br> |
| 127 | +<br> |
| 128 | + |
| 129 | +### 🔹 TypeScript |
| 130 | + |
| 131 | +Reactime offre la prise en charge des applications TypeScript utilisant des composants de classe avec état et des composants fonctionnels. Des tests et un développement supplémentaires sont nécessaires pour les hooks personnalisés. |
| 132 | +<br> |
| 133 | +<br> |
89 | 134 |
|
90 |
| -### Optimisation du rendu |
| 135 | +### Documentation |
91 | 136 |
|
92 |
| -L'un des problèmes les plus courants qui affectent les performances dans React est les cycles de rendu inutiles. Ce problème peut être résolu en vérifiant vos rendus dans l'onglet Performances de Chrome DevTools sous le panneau Reactime. |
| 137 | +Après avoir cloné ce référentiel, les développeurs peuvent simplement exécuter `npm run docs` au niveau racine et servir le fichier `/docs/index.html` généré dynamiquement sur un navigateur. Cela fournira une vue GUI lisible, extensible et interactive de la structure et des interfaces de la base de code. |
| 138 | +<br> |
| 139 | +<br> |
93 | 140 |
|
94 |
| -### Enregistrement |
| 141 | +### <b>Caractéristiques Supplémentaires</b> |
95 | 142 |
|
96 |
| -Chaque fois que l'état est changé (chaque fois que setState, useState est appelé), cette extension crée un snapshot de l'arbre d'état actuelle et l'enregistre. Chaque instantané sera affiché dans Chrome DevTools sous le panneau Reactime. |
| 143 | +- Tutoriels pour des onglets spécifiques |
| 144 | +- Passez la souris sur un composant pour afficher les détails de l'état |
| 145 | +- Double-cliquez pour masquer les composants enfants |
| 146 | +- Cliquez pour vous concentrer sur une partie de la carte des composants |
| 147 | +- A dropdown to support the development of projects on multiple tabs |
| 148 | +- Une liste déroulante pour accompagner le développement de projets sur plusieurs onglets |
| 149 | +- Fonctionnalité verrouillée/déverrouillée permettant une pause temporaire de la surveillance de l'état |
97 | 150 |
|
98 |
| -### Visualisation |
| 151 | +<h1>Quoi de Neuf!</h1> |
99 | 152 |
|
100 |
| -Vous pouvez cliquer sur un snapshot pour afficher l'état de votre application. L'état peut être visualisé dans un graphique de composants, une arbre JSON ou un graphique de performances. Les snapshots peuvent être différents d'un snapshot précédent, et peut être visualisé en mode Diff. |
| 153 | +Reactime v22.0.0 a apporté des améliorations significatives, résolvant les problèmes de performances et renforçant la stabilité et la fiabilité globales de l'application. Pour que Reactime soit le meilleur possible, nous avons mis à jour les packages obsolètes et transféré la gestion des états vers Redux Toolkit. Ce changement stratégique modernise notre pile technologique et augmente la maintenabilité et l’évolutivité. Outre ces mises à niveau, cette version corrige également divers bugs. Le lancement de fonctionnalités telles que le bouton de reconnexion, une icône d'état et l'intégration de métriques Web clés – « Cumulative Layout Shift » (CLS) et « Interaction To Next Paint »(INP) – amplifie ses fonctionnalités et offre aux utilisateurs une expérience plus raffinée. |
101 | 154 |
|
102 |
| -### Jumping |
| 155 | +<i>Regarder Plus Profondément</i> |
103 | 156 |
|
104 |
| -À l'aide de la barre latérale des actions, un utilisateur peut accéder à n'importe quel snapshot enregistré précédemment. Appuyer sur le bouton de saut sur n'importe quel snapshot permettra à un utilisateur d'afficher les données d'état à tout moment dans l'historique de l'application cible. |
| 157 | +En résolvant les problèmes persistants de déconnexion/d'écran noir qui affectaient parfois les utilisateurs lors de l'utilisation régulière de l'application, nous avons apporté des améliorations décisives en supprimant la fonction « keepAlive » et en implémentant une logique robuste pour résoudre le problème principal. Cela nous a permis d'affiner le protocole de communication entre notre application et le navigateur, offrant ainsi une connexion plus cohérente et stable. Cela offre aux utilisateurs une voie de récupération rapide et constitue également une couche de protection supplémentaire contre toute déconnexion inattendue à l'avenir. |
105 | 158 |
|
106 |
| -### Support pour TypeScript |
| 159 | +Pour améliorer la maintenabilité, l'évolutivité et la longévité, nous avons mis à jour et supprimé progressivement certaines dépendances. Nous nous sommes éloignés de la bibliothèque Immer et avons transféré notre gestion d'état pour utiliser Redux Toolkit, tout en mettant à niveau l'API Web Vitals de la version 1.1.2 à 3.5.0, nous permettant d'utiliser une gamme plus large de métriques Web. Dans le cadre de cette transition, nous avons également converti tous les tests existants pour qu'ils fonctionnent avec le système de gestion d'état mis à jour, tout en élargissant encore les suites de tests pour augmenter la couverture globale des tests. Enfin, nous avons obtenu une augmentation notable de la couverture TypeScript, renforçant la qualité du code et la détection précoce des problèmes de développement potentiels. |
107 | 160 |
|
108 |
| -Reactime propose un support bêta pour les applications TypeScript utilisant des composants de classe avec état et des composants fonctionnels. Des tests et un développement supplémentaires sont nécessaires pour les hooks personnalisés, l'API de contexte et le mode Concurrent. |
| 161 | +Nous avons apporté de nombreux changements destinés à améliorer l'expérience utilisateur. Le premier est la fonction de reconnexion, conçue comme une mesure de protection pour les moments inattendus où un utilisateur est déconnecté. Lorsque cela se produit, une boîte de dialogue contextuelle intuitive apparaîtra instantanément, offrant aux utilisateurs un moyen transparent de replonger directement dans leur session, tout en offrant également la possibilité de télécharger des instantanés d'état enregistrés sous forme de fichier JSON. Nous avons également intégré un indicateur d'état dynamique qui affiche de manière transparente l'état actuel de l'application d'un utilisateur, indiquant s'il est en ligne ou hors ligne. Nous avons également enrichi l'application avec deux mesures de performances Web essentielles : « Cumulative Layout Shift » (CLS) et « Interaction to Next Paint » (INP). Ces mesures sont essentielles, car elles fournissent aux développeurs des informations sur la stabilité et la réactivité de la mise en page, leur permettant ainsi d'optimiser les interactions des utilisateurs avec précision. |
109 | 162 |
|
110 |
| -### Documentation |
| 163 | +Si vous souhaitez en savoir plus sur les versions précédentes, cliquez <a href="https://github.com/open-source-labs/reactime/releases">ici !</a> |
111 | 164 |
|
112 |
| -Après avoir cloné ce référentiel, les développeurs peuvent simplement exécuter `npm run docs` au niveau racine et servir le fichier `/docs/index.html` généré dynamiquement sur un navigateur. Cela fournira une vue GUI lisible, extensible et interactive de la structure et des interfaces de la base de code. |
| 165 | +<p align="center"> |
| 166 | + |
| 167 | +<h1>Installation</h1> |
| 168 | + |
| 169 | +Pour commencer, installer l’[extension](https://chrome.google.com/webstore/detail/reactime/cgibknllccemdnfhfpmjhffpjfeidjga) Reactime depuis le Chrome Web Store. |
113 | 170 |
|
114 |
| -### <b>Caractéristiques supplémentaires</b> |
| 171 | +REMARQUE: L'[extension](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en) React Developer Tools est également requise pour que Reactime s'exécute, si vous ne l'avez pas déjà installé sur votre navigateur. |
| 172 | + |
| 173 | +### <b>Installation Alternative</b> |
| 174 | + |
| 175 | +Utilisez `src/extension/build/build.zip` pour une installation manuelle en [mode Développeur](https://developer.chrome.com/extensions/faq#faq-dev-01). Activez "Autoriser l'accès aux URL de fichiers" dans la page des détails de l'extension si vous effectuez un test local. |
| 176 | + |
| 177 | +### Voulez-vous contribuer à Reactime ? |
| 178 | + |
| 179 | +<i>Veuillez vous référer à la documentation du développeur pour un guide détaillé :</i> |
| 180 | + |
| 181 | +Consultez [DEVELOPER README](src/README.md) pour plus d'informations sur le projet et des instructions sur la construction à partir des sources. |
| 182 | + |
| 183 | +### <b>Manuel</b> |
| 184 | + |
| 185 | +Après avoir installé l’extension Chrome Reactime, ouvrez votre application dans le navigateur. |
| 186 | + |
| 187 | +Ensuite, ouvrez vos Chrome DevTools et accédez au panneau Reactime. |
| 188 | + |
| 189 | +## <b>Diagnostic des anomalies</b> |
115 | 190 |
|
116 |
| -- identifier les rendus inutiles |
117 |
| -- fonctionnalité de survol pour afficher les détails des info-bulles sur les visualisations d'état |
118 |
| -- possibilité de panoramique et de zoom sur les visualisations d'état |
119 |
| -- une liste déroulante pour prendre en charge le développement de projets sur plusieurs onglets |
120 |
| -- un curseur pour parcourir rapidement les snapshots |
121 |
| -- un bouton de lecture pour se déplacer automatiquement dans les snapshots |
122 |
| -- un bouton de verrouillage, qui arrête l'enregistrement de chaque snapshot |
123 |
| -- un bouton persister pour conserver les snapshots lors de l'actualisation (pratique lors du changement de code et du débogage) |
124 |
| -- télécharger les snapshots actuels en mémoire |
125 |
| -- titres déclaratifs dans la barre latérale des actions |
| 191 | +### ❓ <b>Que faire quand Reactime ne trouve pas d’application React?</b> |
126 | 192 |
|
127 |
| -<h1>Quoi de neuf !</h1> |
128 |
| -Reactime 20.0 inclut plusieurs améliorations clés sous le capot pour améliorer les performances et résoudre les bogues existants, ainsi qu'une UX remaniée pour atteindre la compatibilité WCAG. |
| 193 | +Reactime s'exécute initialement à l'aide du hook global des outils de développement de l'API Chrome. Leur chargement dans Chrome peut prendre du temps. Essayez d'actualiser votre application plusieurs fois jusqu'à ce que Reactime s'exécute. |
| 194 | + |
| 195 | +### ❓ <b>Un écran noir s’affiche à la place de l’extension Reactime</b> |
129 | 196 |
|
130 |
| -Nous avons résolu plusieurs bogues persistants, y compris un problème majeur qui faisait planter les applications utilisant Reactime lors de l'utilisation de la fonctionnalité de connexion ou de soumission. Dans le cadre de nos efforts pour améliorer les performances globales de Reactime, nous avons continué à implémenter TypeScript dans toute la base de code et créé de nouveaux tests avec React Testing Library. Nous avons également rendu les tests plus robustes, améliorant les tests existants et corrigeant les environnements de test défectueux. Enfin, nous avons mis à jour Reactime en supprimant certains codes et packages obsolètes, réduisant ainsi les erreurs de compilation. |
| 197 | +Essayez d'actualiser l'application que vous souhaitez tester et actualisez les DevTools en cliquant sur le bouton droit de la souris «Recharger le cadre». |
131 | 198 |
|
132 |
| -Nous avons mis à jour l'UX, en recherchant la cohérence avec les directives pour l'accessibilité des contenus Web (WCAG). Plus précisément, nous avons amélioré la taille et la conception des éléments cibles dans Reactime et soigneusement choisi de nouveaux contrastes de couleurs. |
| 199 | +### ❓ <b>J’ai trouvé un bug dans Reactime</b> |
| 200 | + |
| 201 | +Reactime est un projet open source, et toute aide de vore part sera grandement appréciée pour nous aider à améliorer l'expérience utilisateur. Veuillez créer une pull request (ou un problème) pour proposer et collaborer sur les modifications apportées à un référentiel. |
133 | 202 |
|
134 | 203 | ## <b>En savoir plus</b>
|
135 | 204 |
|
@@ -217,6 +286,10 @@ Nous avons mis à jour l'UX, en recherchant la cohérence avec les directives po
|
217 | 286 | - **James McCollough** - [@j-mccoll](https://github.com/j-mccoll)
|
218 | 287 | - **Mike Bednarz** - [@mikebednarz](https://github.com/mikebednarz)
|
219 | 288 | - **Sergei Liubchenko** - [@sergeylvq](https://github.com/sergeylvq)
|
| 289 | +- **Christopher Stamper** - [@ctstamper](https://github.com/ctstamper) |
| 290 | +- **Jimmy Phy** - [@jimmally](https://github.com/jimmally) |
| 291 | +- **Andrew Byun** - [@AndrewByun](https://github.com/AndrewByun) |
| 292 | +- **Kelvin Mirhan** - [@kelvinmirhan](https://github.com/kelvinmirhan) |
220 | 293 |
|
221 | 294 | ## <b>License </b>
|
222 | 295 |
|
|
0 commit comments