Blog>
Snippets

Optimizing Render Performance in Controlled Tables

Offers strategies for improving render performance in tables with large datasets. Highlights use of React.memo and useCallback for efficient rendering.
const TableRow = React.memo(({item}) => (
  <tr>
    <td>{item.name}</td>
    <td>{item.age}</td>
  </tr>
));
Utilizes React.memo to prevent unnecessary re-renders of the TableRow component. This is effective when props (in this case, item) have not changed between renders.
const Table = ({data}) => {
  const renderRow = React.useCallback((item) => (
    <TableRow key={item.id} item={item} />
  ), []);

  return (
    <table>
      <tbody>
        {data.map(renderRow)}
      </tbody>
    </table>
  );
};
Implements React.useCallback to memoize the TableRow rendering function. This prevents the function from being recreated on every render of the Table component, ensuring that components down the tree only re-render when necessary (i.e., when their props change).