A Chrome extension that helps debug React applications by memorizing the state of components with every render.
Reactime was nominated for the Productivity Booster award at React Open Source Awards 2020.
Reactime is an open source Chrome developer tool for time travel debugging and performance monitoring in React applications. Reactime enables developers to record snapshots of application state, jump between and inspect state snapshots, and monitor performance metrics such as component render time and render frequency.
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.
Reactime 15.0 adds a new visualization, allowing users to zone in on individual components of a specific snapshot. Additionally, a number of bug fixes have been implemented.
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.
Previously, Reactime 14.0 added the exciting features below:
React Router Compatibility
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.
Classifying State Snapshots by Route
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.
Filtering Performance Metrics by Route
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.
Features:
- Component Tree Visualization
- Record Snapshots of Application State
- Time-Travel Debugging
- Snapshot Series Comparison
- Component Render Time & Frequency
- Support for Gatsby & Next.js
- Beta Support for TypeScript
- Tutorial Walkthrough
Troubleshooting:
Why is Reactime telling me that no React application is found?
Reactime initially runs using the dev tools global hook from the Chrome API. It takes time for Chrome to load this. Try refreshing your application a couple times until you see Reactime running.
There is a black screen instead of the Reactime extension.
Try refreshing the application you want to test and refresh the DevTools by clicking the right mouse button “Reload frame”.
I found a bug in Reactime.
Reactime is an open source project, and we’d really appreciate your help with improving user experience. Please create a pull request (or issue) to propose and collaborate on changes to a repository.
Further Reading:
https://medium.com/better-programming/time-traveling-state-with-reactime-6-0-53fdc3ae2a20
https://medium.com/@aquinojardim/react-fiber-reactime-4-0-f200f02e7fa8
https://medium.com/@yujinkay/meet-reactime-a-time-traveling-state-debugger-for-react-24f0fce96802
https://itnext.io/deep-in-the-weeds-with-reactime-concurrent-react-fiberroot-and-browser-history-caching-7ce9d7300abb
https://rxlina.medium.com/time-traveling-through-react-state-with-reactime-9-0-371dbdc99319
https://medium.com/@liuedar/what-time-is-it-reactime-fd7267b9eb89
https://medium.com/@christinaor/uncovering-reactime-understanding-react-fiber-redux-compatibility-and-zoning-in-on-components-59f0758e0fa3