|
43 | 43 | <a href="#how-to-use">How To Use</a> • <a href="#features">Features</a> • <a href="https://reactime.io">Website</a> • <a href="#read-more">Read More</a>
|
44 | 44 | </p>
|
45 | 45 |
|
| 46 | +<b>Reactime 15.0</b> has added a new visualization, allowing users to zone in on individual components of a specific snapshot. Additionally, a number of bug fixes have been implemented. |
| 47 | + |
46 | 48 | Currently, Reactime supports React apps (now including React Router apps) using stateful components and Hooks, with beta support for Recoil and Context API and frameworks like Gatsby and Next.js.
|
47 | 49 |
|
48 |
| -<b>Reactime 14.0</b> has added the exciting features below: |
| 50 | +Previously, <b>Reactime 14.0</b> added the exciting features below: |
49 | 51 |
|
50 | 52 | I. React Router Compatibility <br>
|
51 | 53 | Reactime is now compatible with React Router applications! Prior to Reactime 14.0, recording state snapshots as the user navigated across various routes was possible, but time travel debugging was only possible for the current route (i.e. jumping back to a prior state at a different route was not possible). In order to streamline debugging of applications with multiple routes, Reactime 14.0 added functionality that allows the user to time-travel back to different routes, including live updating in the browser to reflect the state of their application at that previously visited route.
|
52 | 54 |
|
53 | 55 | II. Classifying State Snapshots by Route <br>
|
54 |
| -The list of state snapshots in the Reactime dashboard is now classified by route to give the developer visual cues of the snapshot-route relationship and make time travel debugging of various routes easier. |
| 56 | +The list of state snapshots in the Reactime dashboard is now classified by route to give the developer visual cues of the snapshot-route relationship and make time travel debugging of various routes easier. |
55 | 57 |
|
56 | 58 | III. Filtering Performance Metrics by Route <br>
|
57 | 59 | The Reactime dashboard includes a stacked bar graph showing render times for each component, with a separate bar stack for each snapshot. With Reactime 14.0, this composite bar graph can now be filtered by route to allow the developer to review detailed performance data by route.
|
@@ -97,26 +99,40 @@ Reactime is an open source project, and we’d really appreciate your help with
|
97 | 99 | You can view your application's file structure and click on a snapshot to view your app's state. State can be visualized in a Component Graph, JSON Tree, or Performance Graph. Snapshots can be diffed with the previous snapshot, which can be viewed in Diff mode.
|
98 | 100 | <br>
|
99 | 101 | <br>
|
| 102 | + |
100 | 103 | <p align="center">
|
101 | 104 | <img src="./assets/map-viewing.gif" />
|
102 | 105 | </p>
|
103 | 106 | <br>
|
104 | 107 |
|
105 |
| -### 🔹 Snapshot Series and Action Comparison |
| 108 | +### 🔹 Snapshot Series and Action Comparison |
106 | 109 |
|
107 |
| -You can save a series of state snapshots and use it to analyze changes in component render performance between current and previous series of snapshots. You can also name specific snapshots and compare all snapshots with the same name. |
| 110 | +You can save a series of state snapshots and use it to analyze changes in component render performance between current and previous series of snapshots. You can also name specific snapshots and compare all snapshots with the same name. |
108 | 111 | <br>
|
109 | 112 | <br>
|
| 113 | + |
110 | 114 | <p align="center">
|
111 | 115 | <img src="./assets/action-comparison.gif" />
|
112 | 116 | </p>
|
113 | 117 | <br>
|
114 | 118 |
|
| 119 | +### 🔹 Components Comparison |
| 120 | + |
| 121 | +When toggled to a specific snapshot, a visualization of the individual components of the snapshow will be displayed. This can be done under the same Performance tab where the snapshots are rendered. You will also find details of each component upon hovering. |
| 122 | +<br> |
| 123 | +<br> |
| 124 | + |
| 125 | +<p align="center"> |
| 126 | +<!-- <img src="./assets/action-comparison.gif" /> --> |
| 127 | +</p> |
| 128 | +<br> |
| 129 | + |
115 | 130 | ### 🔹 Recording
|
116 | 131 |
|
117 | 132 | Whenever state is changed (whenever setState, useState is called), this extension will create a snapshot of the current state tree and record it. Each snapshot will be displayed in Chrome DevTools under the Reactime panel.
|
118 | 133 | <br>
|
119 | 134 | <br>
|
| 135 | + |
120 | 136 | <p align="center">
|
121 | 137 | <img src="./assets/history-tree.gif" />
|
122 | 138 | </p>
|
@@ -149,93 +165,102 @@ After cloning this repository, developers can simply run `npm run docs` at the r
|
149 | 165 |
|
150 | 166 | ### <b>Additional Features</b>
|
151 | 167 |
|
152 |
| -- Identifying unnecessary re-renders |
153 |
| -- Single-click to view tooltip details on state visualizations |
154 |
| -- Double-click to collapse child components |
155 |
| -- A reverse filter with autofill to focus on a portion of the component map |
156 |
| -- Ability to pan and zoom on state visualizations |
157 |
| -- A dropdown to support development of projects on multiple tabs |
158 |
| -- A slider to move through snapshots quickly |
159 |
| -- A play button to move through snapshots automatically |
160 |
| -- A lock button, which stops recording each snapshot |
161 |
| -- A persist button to keep snapshots upon refresh (handy when changing code and debugging) |
162 |
| -- Download/upload the current snapshots in memory |
163 |
| -- Declarative titles in the actions sidebar |
164 |
| -- Interative Tutorial Walkthrough |
165 |
| -- Toggle feature allowing temporary pause of state monitoring |
| 168 | +- Identifying unnecessary re-renders |
| 169 | +- Single-click to view tooltip details on state visualizations |
| 170 | +- Double-click to collapse child components |
| 171 | +- A reverse filter with autofill to focus on a portion of the component map |
| 172 | +- Ability to pan and zoom on state visualizations |
| 173 | +- A dropdown to support development of projects on multiple tabs |
| 174 | +- A slider to move through snapshots quickly |
| 175 | +- A play button to move through snapshots automatically |
| 176 | +- A lock button, which stops recording each snapshot |
| 177 | +- A persist button to keep snapshots upon refresh (handy when changing code and debugging) |
| 178 | +- Download/upload the current snapshots in memory |
| 179 | +- Declarative titles in the actions sidebar |
| 180 | +- Interative Tutorial Walkthrough |
| 181 | +- Toggle feature allowing temporary pause of state monitoring |
| 182 | + |
| 183 | +### <b>Bug Fixes</b> |
| 184 | + |
| 185 | +- Search bar now searches for specific nodes successfully |
| 186 | +- Tab titles of chrome browser tabs not running an application in development mode are no longer affected by Reactime |
166 | 187 |
|
167 | 188 | ## <b>Read More</b>
|
168 | 189 |
|
169 |
| -- [Time-Travel State with Reactime](https://medium.com/better-programming/time-traveling-state-with-reactime-6-0-53fdc3ae2a20) |
170 |
| -- [React Fiber and Reactime](https://medium.com/@aquinojardim/react-fiber-reactime-4-0-f200f02e7fa8) |
171 |
| -- [Meet Reactime - a time-traveling State Debugger for React](https://medium.com/@yujinkay/meet-reactime-a-time-traveling-state-debugger-for-react-24f0fce96802) |
172 |
| -- [Deep in Weeds with Reactime, Concurrent React_fiberRoot, and Browser History Caching](https://itnext.io/deep-in-the-weeds-with-reactime-concurrent-react-fiberroot-and-browser-history-caching-7ce9d7300abb) |
173 |
| -- [Time-Traveling Through React State with Reactime 9.0](https://rxlina.medium.com/time-traveling-through-react-state-with-reactime-9-0-371dbdc99319) |
174 |
| -- [What time is it? Reactime!](https://medium.com/@liuedar/what-time-is-it-reactime-fd7267b9eb89) |
| 190 | +- [Time-Travel State with Reactime](https://medium.com/better-programming/time-traveling-state-with-reactime-6-0-53fdc3ae2a20) |
| 191 | +- [React Fiber and Reactime](https://medium.com/@aquinojardim/react-fiber-reactime-4-0-f200f02e7fa8) |
| 192 | +- [Meet Reactime - a time-traveling State Debugger for React](https://medium.com/@yujinkay/meet-reactime-a-time-traveling-state-debugger-for-react-24f0fce96802) |
| 193 | +- [Deep in Weeds with Reactime, Concurrent React_fiberRoot, and Browser History Caching](https://itnext.io/deep-in-the-weeds-with-reactime-concurrent-react-fiberroot-and-browser-history-caching-7ce9d7300abb) |
| 194 | +- [Time-Traveling Through React State with Reactime 9.0](https://rxlina.medium.com/time-traveling-through-react-state-with-reactime-9-0-371dbdc99319) |
| 195 | +- [What time is it? Reactime!](https://medium.com/@liuedar/what-time-is-it-reactime-fd7267b9eb89) |
175 | 196 |
|
176 | 197 | ## <b>Authors</b>
|
177 | 198 |
|
178 |
| -- **David Kim** - [@codejunkie7](https://github.com/codejunkie7) |
179 |
| -- **Robby Tipton** - [@RobbyTipton](https://github.com/RobbyTipton) |
180 |
| -- **Kevin HoEun Lee** - [@khobread](https://github.com/khobread) |
181 |
| -- **Christopher LeBrett** - [@fscgolden](https://github.com/fscgolden) |
182 |
| -- **Joseph Park** - [@joeepark](https://github.com/joeepark) |
183 |
| -- **Kris Sorensen** - [@kris-sorensen](https://github.com/kris-sorensen) |
184 |
| -- **Daljit Gill** - [@dgill05](https://github.com/dgill05) |
185 |
| -- **Ben Michareune** - [@bmichare](https://github.com/bmichare) |
186 |
| -- **Dane Corpion** - [@danecorpion](https://github.com/danecorpion) |
187 |
| -- **Harry Fox** - [@StackOverFlowWhereArtThou](https://github.com/StackOverFlowWhereArtThou) |
188 |
| -- **Nathan Richardson** - [@BagelEnthusiast](https://github.com/BagelEnthusiast) |
189 |
| -- **David Bernstein** - [@dangitbobbeh](https://github.com/dangitbobbeh) |
190 |
| -- **Joseph Stern** - [@josephiswhere](https://github.com/josephiswhere) |
191 |
| -- **Dennis Lopez** - [@DennisLpz](https://github.com/DennisLpz) |
192 |
| -- **Cole Styron** - [@colestyron](https://github.com/C-STYR) |
193 |
| -- **Ali Rahman** - [@CourageWolf](https://github.com/CourageWolf) |
194 |
| -- **Caner Demir** - [@demircaner](https://github.com/demircaner) |
195 |
| -- **Kevin Ngo** - [@kev-ngo](https://github.com/kev-ngo) |
196 |
| -- **Becca Viner** - [@rtviner](https://github.com/rtviner) |
197 |
| -- **Caitlin Chan** - [@caitlinchan23](https://github.com/caitlinchan23) |
198 |
| -- **Kim Mai Nguyen** - [@Nkmai](https://github.com/Nkmai) |
199 |
| -- **Tania Lind** - [@lind-tania](https://github.com/lind-tania) |
200 |
| -- **Alex Landeros** - [@AlexanderLanderos](https://github.com/AlexanderLanderos) |
201 |
| -- **Chris Guizzetti** - [@guizzettic](https://github.com/guizzettic) |
202 |
| -- **Jason Victor** - [@theqwertypusher](https://github.com/Theqwertypusher) |
203 |
| -- **Sanjay Lavingia** - [@sanjaylavingia](https://github.com/sanjaylavingia) |
204 |
| -- **Vincent Nguyen** - [@VNguyenCode](https://github.com/VNguyenCode) |
205 |
| -- **Haejin Jo** - [@haejinjo](https://github.com/haejinjo) |
206 |
| -- **Hien Nguyen** - [@hienqn](https://github.com/hienqn) |
207 |
| -- **Jack Crish** - [@JackC27](https://github.com/JackC27) |
208 |
| -- **Kevin Fey** - [@kevinfey](https://github.com/kevinfey) |
209 |
| -- **Carlos Perez** - [@crperezt](https://github.com/crperezt) |
210 |
| -- **Edwin Menendez** - [@edwinjmenendez](https://github.com/edwinjmenendez) |
211 |
| -- **Gabriela Jardim Aquino** - [@aquinojardim](https://github.com/aquinojardim) |
212 |
| -- **Greg Panciera** - [@gpanciera](https://github.com/gpanciera) |
213 |
| -- **Nathanael Wa Mwenze** - [@nmwenz90](https://github.com/nmwenz90) |
214 |
| -- **Ryan Dang** - [@rydang](https://github.com/rydang) |
215 |
| -- **Bryan Lee** - [@mylee1995](https://github.com/mylee1995) |
216 |
| -- **Josh Kim** - [@joshua0308](https://github.com/joshua0308) |
217 |
| -- **Sierra Swaby** - [@starkspark](https://github.com/starkspark) |
218 |
| -- **Ruth Anam** - [@peachiecodes](https://github.com/peachiecodes) |
219 |
| -- **David Chai** - [@davidchaidev](https://github.com/davidchai717) |
220 |
| -- **Yujin Kang** - [@yujinkay](https://github.com/yujinkay) |
221 |
| -- **Andy Wong** - [@andywongdev](https://github.com/andywongdev) |
222 |
| -- **Chris Flannery** - [@chriswillsflannery](https://github.com/chriswillsflannery) |
223 |
| -- **Rajeeb Banstola** - [@rajeebthegreat](https://github.com/rajeebthegreat) |
224 |
| -- **Prasanna Malla** - [@prasmalla](https://github.com/prasmalla) |
225 |
| -- **Rocky Lin** - [@rocky9413](https://github.com/rocky9413) |
226 |
| -- **Abaas Khorrami** - [@dubalol](https://github.com/dubalol) |
227 |
| -- **Ergi Shehu** - [@Ergi516](https://github.com/ergi516) |
228 |
| -- **Raymond Kwan** - [@rkwn](https://github.com/rkwn) |
229 |
| -- **Joshua Howard** - [@Joshua-Howard](https://github.com/joshua-howard) |
230 |
| -- **Lina Shin** - [@rxlina](https://github.com/rxlina) |
231 |
| -- **Andy Tsou** - [@andytsou19](https://github.com/andytsou19) |
232 |
| -- **Feiyi Wu** - [@FreyaWu](https://github.com/FreyaWu) |
233 |
| -- **Viet Nguyen** - [@vnguyen95](https://github.com/vnguyen95) |
234 |
| -- **Alex Gomez** - [@alexgomez9](https://github.com/alexgomez9) |
235 |
| -- **Edar Liu** - [@liuedar](https://github.com/liuedar) |
236 |
| -- **Kristina Wallen** - [@kristinawallen](https://github.com/kristinawallen) |
237 |
| -- **Quan Le** - [@blachfog](https://github.com/Blachfog) |
238 |
| -- **Robert Maeda** - [@robmaeda](https://github.com/robmaeda) |
| 199 | +- **Peng Dong** - [@d28601581](https://github.com/d28601581) |
| 200 | +- **Ozair Ghulam** - [@ozairgh](https://github.com/ozairgh) |
| 201 | +- **Christina Or** - [@christinaor](https://github.com/christinaor) |
| 202 | +- **Khanh Bui** - [@AndyB909](https://github.com/AndyB909) |
| 203 | +- **David Kim** - [@codejunkie7](https://github.com/codejunkie7) |
| 204 | +- **Robby Tipton** - [@RobbyTipton](https://github.com/RobbyTipton) |
| 205 | +- **Kevin HoEun Lee** - [@khobread](https://github.com/khobread) |
| 206 | +- **Christopher LeBrett** - [@fscgolden](https://github.com/fscgolden) |
| 207 | +- **Joseph Park** - [@joeepark](https://github.com/joeepark) |
| 208 | +- **Kris Sorensen** - [@kris-sorensen](https://github.com/kris-sorensen) |
| 209 | +- **Daljit Gill** - [@dgill05](https://github.com/dgill05) |
| 210 | +- **Ben Michareune** - [@bmichare](https://github.com/bmichare) |
| 211 | +- **Dane Corpion** - [@danecorpion](https://github.com/danecorpion) |
| 212 | +- **Harry Fox** - [@StackOverFlowWhereArtThou](https://github.com/StackOverFlowWhereArtThou) |
| 213 | +- **Nathan Richardson** - [@BagelEnthusiast](https://github.com/BagelEnthusiast) |
| 214 | +- **David Bernstein** - [@dangitbobbeh](https://github.com/dangitbobbeh) |
| 215 | +- **Joseph Stern** - [@josephiswhere](https://github.com/josephiswhere) |
| 216 | +- **Dennis Lopez** - [@DennisLpz](https://github.com/DennisLpz) |
| 217 | +- **Cole Styron** - [@colestyron](https://github.com/C-STYR) |
| 218 | +- **Ali Rahman** - [@CourageWolf](https://github.com/CourageWolf) |
| 219 | +- **Caner Demir** - [@demircaner](https://github.com/demircaner) |
| 220 | +- **Kevin Ngo** - [@kev-ngo](https://github.com/kev-ngo) |
| 221 | +- **Becca Viner** - [@rtviner](https://github.com/rtviner) |
| 222 | +- **Caitlin Chan** - [@caitlinchan23](https://github.com/caitlinchan23) |
| 223 | +- **Kim Mai Nguyen** - [@Nkmai](https://github.com/Nkmai) |
| 224 | +- **Tania Lind** - [@lind-tania](https://github.com/lind-tania) |
| 225 | +- **Alex Landeros** - [@AlexanderLanderos](https://github.com/AlexanderLanderos) |
| 226 | +- **Chris Guizzetti** - [@guizzettic](https://github.com/guizzettic) |
| 227 | +- **Jason Victor** - [@theqwertypusher](https://github.com/Theqwertypusher) |
| 228 | +- **Sanjay Lavingia** - [@sanjaylavingia](https://github.com/sanjaylavingia) |
| 229 | +- **Vincent Nguyen** - [@VNguyenCode](https://github.com/VNguyenCode) |
| 230 | +- **Haejin Jo** - [@haejinjo](https://github.com/haejinjo) |
| 231 | +- **Hien Nguyen** - [@hienqn](https://github.com/hienqn) |
| 232 | +- **Jack Crish** - [@JackC27](https://github.com/JackC27) |
| 233 | +- **Kevin Fey** - [@kevinfey](https://github.com/kevinfey) |
| 234 | +- **Carlos Perez** - [@crperezt](https://github.com/crperezt) |
| 235 | +- **Edwin Menendez** - [@edwinjmenendez](https://github.com/edwinjmenendez) |
| 236 | +- **Gabriela Jardim Aquino** - [@aquinojardim](https://github.com/aquinojardim) |
| 237 | +- **Greg Panciera** - [@gpanciera](https://github.com/gpanciera) |
| 238 | +- **Nathanael Wa Mwenze** - [@nmwenz90](https://github.com/nmwenz90) |
| 239 | +- **Ryan Dang** - [@rydang](https://github.com/rydang) |
| 240 | +- **Bryan Lee** - [@mylee1995](https://github.com/mylee1995) |
| 241 | +- **Josh Kim** - [@joshua0308](https://github.com/joshua0308) |
| 242 | +- **Sierra Swaby** - [@starkspark](https://github.com/starkspark) |
| 243 | +- **Ruth Anam** - [@peachiecodes](https://github.com/peachiecodes) |
| 244 | +- **David Chai** - [@davidchaidev](https://github.com/davidchai717) |
| 245 | +- **Yujin Kang** - [@yujinkay](https://github.com/yujinkay) |
| 246 | +- **Andy Wong** - [@andywongdev](https://github.com/andywongdev) |
| 247 | +- **Chris Flannery** - [@chriswillsflannery](https://github.com/chriswillsflannery) |
| 248 | +- **Rajeeb Banstola** - [@rajeebthegreat](https://github.com/rajeebthegreat) |
| 249 | +- **Prasanna Malla** - [@prasmalla](https://github.com/prasmalla) |
| 250 | +- **Rocky Lin** - [@rocky9413](https://github.com/rocky9413) |
| 251 | +- **Abaas Khorrami** - [@dubalol](https://github.com/dubalol) |
| 252 | +- **Ergi Shehu** - [@Ergi516](https://github.com/ergi516) |
| 253 | +- **Raymond Kwan** - [@rkwn](https://github.com/rkwn) |
| 254 | +- **Joshua Howard** - [@Joshua-Howard](https://github.com/joshua-howard) |
| 255 | +- **Lina Shin** - [@rxlina](https://github.com/rxlina) |
| 256 | +- **Andy Tsou** - [@andytsou19](https://github.com/andytsou19) |
| 257 | +- **Feiyi Wu** - [@FreyaWu](https://github.com/FreyaWu) |
| 258 | +- **Viet Nguyen** - [@vnguyen95](https://github.com/vnguyen95) |
| 259 | +- **Alex Gomez** - [@alexgomez9](https://github.com/alexgomez9) |
| 260 | +- **Edar Liu** - [@liuedar](https://github.com/liuedar) |
| 261 | +- **Kristina Wallen** - [@kristinawallen](https://github.com/kristinawallen) |
| 262 | +- **Quan Le** - [@blachfog](https://github.com/Blachfog) |
| 263 | +- **Robert Maeda** - [@robmaeda](https://github.com/robmaeda) |
239 | 264 |
|
240 | 265 | ## <b>License </b>
|
241 | 266 |
|
|
0 commit comments