react-render-tracker
why-did-you-render
Our great sponsors
react-render-tracker | why-did-you-render | |
---|---|---|
2 | 47 | |
2,159 | 10,716 | |
- | 1.4% | |
8.2 | 7.0 | |
5 months ago | 12 days ago | |
TypeScript | JavaScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
react-render-tracker
-
lahmatiy/react-render-tracker: React render tracker – a tool to discover performance issues related to unintentional re-renders and unmounts
Since RRT is on MVP stage, that's the main difference for now. [More features are planned](https://github.com/lahmatiy/react-render-tracker/issues/6), like better stats, viz improvements, non-ui client API and event log dumping for using on CI etc.
why-did-you-render
- Too many rerenders in react?
- Lag issues with RN
-
After a year developing with react, I think I've been doing all wrong
For debugging why a specific component re-renders, there is also why did you render
-
Why and How We Retired Elm at Culture Amp
It's a combination of many things, but imo one of the worst is all the footguns regarding state and the rerenders they cause
https://emnudge.dev/blog/react-hostage
It's so easy, that we monkey patch react to debug it https://github.com/welldone-software/why-did-you-render
Plus the vdom... Isn't great, the bundle size puts react at an inherit disadvantage, and the community has a knack for over reliance on bloated packages
-
7 Proven Practices to Boost Development Speed and Project Quality
When we implemented the MVP of the fintech app, we had a quite complicated form. At that time, I was still young and inexperienced. And eventually, we realized that our project was slowing down. We had to spend additional hours figuring out the reason. We had many unnecessary re-renders because we ignored basic rules related to props in React. I wanted to do everything possible to avoid such situations in the future. So, I added to the project linters like this and an additional starting configuration to package.json to run why-did-you-render. In short, this plugin issues a warning if something is re-rendered unnecessarily and suggests how to avoid it. Also, we included running Lighthouse in headless mode. Some people say that premature optimizations are bad, but for me, it's a principle: do it right from the start.
- Free code review
- How do you test number of re-renders?
-
Tools to track re-renders
Couple of questions popped up after discovering this tool called `why-did-you-render`. My understanding is that it helps you keep track of why certain components render.
-
Are there any tools available to help see if useEffect() has a memory leak?
Not exactly what you are looking for (stop runaway effects is it) but this helps diagnose re-renders which can be related: https://github.com/welldone-software/why-did-you-render
What are some alternatives?
craco - Create React App Configuration Override, an easy and comprehensible configuration layer for Create React App.
use-what-changed - A React hook and an easy to use babel-pugin to debug various React official hooks
nextjs-rewrite-test
rempl - Framework for moderated access with custom UI to remote JavaScript runtime
react-devtools - An extension that allows inspection of React component hierarchy in the Chrome and Firefox Developer Tools.
razzle - ✨ Create server-rendered universal JavaScript applications with no configuration
RunJS - RunJS is a JavaScript playground for macOS, Windows and Linux. Write code with instant feedback and access to Node.js and browser APIs.
MineRender - Quick, Easy, Interactive 3D/2D Renders of Minecraft
use-context-selector - React useContextSelector hook in userland
react-native-flash-message - React Native flashbar and top notification alert utility
import-maps - How to control the behavior of JavaScript imports
React-Sight - Visualization tool for React, with support for Fiber, Router (v4), and Redux