Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

simple-react-render-tracker

Package Overview
Dependencies
Maintainers
0
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

simple-react-render-tracker

A powerful and lightweight tool for tracking and debugging React component renders. Monitor render counts, visualize render frequency with heatmaps, and get notifications for excessive renders.

  • 1.0.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
195
Maintainers
0
Weekly downloads
 
Created
Source

Simple React Render Tracker

A powerful and lightweight tool for tracking and debugging React component renders. Monitor render counts, visualize render frequency with heatmaps, and get notifications for excessive renders.

Features

  • 🔍 Track component render counts
  • 📊 Visual heatmap of render frequency
  • ⚡ Performance impact warnings
  • 🎯 Configurable thresholds
  • 🪝 Hooks and HOC APIs
  • 📱 Production-ready with zero impact when disabled

Installation

npm install simple-react-render-tracker
# or
yarn add simple-react-render-tracker
# or
pnpm add simple-react-render-tracker

Quick Start

  1. Wrap your app with the TrackerProvider:
import { TrackerProvider } from 'simple-react-render-tracker';

function App() {
  return (
    <TrackerProvider options={{ threshold: 10, showHeatmap: true }}>
      <YourApp />
    </TrackerProvider>
  );
}
  1. Track renders using either the hook or HOC:
// Using the hook
import { useRenderTracker } from 'simple-react-render-tracker';

function MyComponent(props) {
  useRenderTracker('MyComponent', props);
  return <div>{props.content}</div>;
}

// Using the HOC
import { withRenderTracker } from 'simple-react-render-tracker';

function MyComponent(props) {
  return <div>{props.content}</div>;
}

export default withRenderTracker(MyComponent);
  1. Add the heatmap visualization (optional):
import { RenderHeatmap } from 'simple-react-render-tracker';

function App() {
  return (
    <TrackerProvider options={{ showHeatmap: true }}>
      <YourApp />
      <RenderHeatmap />
    </TrackerProvider>
  );
}

Configuration Options

OptionTypeDefaultDescription
thresholdnumber10Maximum renders before triggering a warning
showHeatmapbooleanfalseShow/hide the render heatmap
notifyfunctionconsole.warnCustom notification handler
const options = {
  threshold: 15,
  showHeatmap: true,
  notify: (message) => toast.warning(message),
};

<TrackerProvider options={options}>
  <App />
</TrackerProvider>

API Reference

useRenderTracker

useRenderTracker(componentName: string, props: object)

A hook to track renders in functional components.

withRenderTracker

withRenderTracker(Component: React.ComponentType, componentName?: string)

A Higher-Order Component (HOC) to track renders in class or functional components.

RenderHeatmap

A component that visualizes render frequency using a color-coded heatmap.

TrackerProvider

The context provider that manages render tracking state and configuration.

Best Practices

  1. Development Only: Disable tracking in production
const showTracker = process.env.NODE_ENV === 'development';

function App() {
  if (!showTracker) return <YourApp />;
  
  return (
    <TrackerProvider>
      <YourApp />
    </TrackerProvider>
  );
}
  1. Custom Notifications: Integrate with your notification system
const options = {
  notify: (message) => {
    // Send to error tracking service
    errorTracker.log(message);
    // Show in UI
    toast.warning(message);
  },
};
  1. Selective Tracking: Only track components you're investigating
// Track only specific components
const needsTracking = ['Header', 'UserProfile', 'Dashboard'];

function MyComponent({ name, ...props }) {
  if (needsTracking.includes(name)) {
    useRenderTracker(name, props);
  }
  // ... rest of component
}

License

MIT © Mamadou Siradiou Diallo

Keywords

FAQs

Package last updated on 17 Nov 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc