welldone-software/why-did-you-render

why-did-you-render by Welldone Software monkey patches React to notify you about potentially avoidable re-renders. (Works with React Native as well.)

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 38 minutes ago
Added to GitGenius on September 4th, 2026
Created on November 10th, 2018
Open Issues & Pull Requests: 45 (+0)
GitHub issues: Enabled
Number of forks: 224
Total Stargazers: 12,519 (+0)
Total Subscribers: 39 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Issue API getrepoissuespagesummary failed: 429 Rate limit exceeded. Please try again later.

Detailed Description

why-did-you-render is a React development tool that detects and reports potentially avoidable component re-renders.

The tool works by monkey-patching React to intercept render cycles and identify when components re-render without their props or state actually changing. This catches performance issues that are easy to miss during development, particularly in applications with complex component hierarchies where unnecessary re-renders can accumulate and degrade user experience. The tool notifies developers about these wasteful renders so they can optimize their components using techniques like memoization or by restructuring how props are passed down the component tree.

Developers should adopt this tool if they are building React applications where performance matters and want to catch render inefficiencies early in development. It works with both React and React Native projects. The tool is most valuable during active development and debugging rather than as a production dependency, since it requires configuration to specify which components to track and operates through runtime inspection.

The project maintains active engagement with its issue tracker, responding to bug reports and feature requests from users. Development includes regular updates to maintain compatibility with new React versions and patterns. The codebase receives contributions addressing edge cases and expanding support for different React usage patterns.