← React Beginner Questions - Set 3 Q30

What is the purpose of the useMemo hook?

React Beginner Questions - Set 3

It caches a computed value until its dependencies change, instead of recomputing on every render.

Example

import { useMemo, useState } from 'react';

export default function Search({ products }) {
  const [term, setTerm] = useState('');

  const matches = useMemo(() => {
    console.log('filtering', products.length);
    return products.filter(p =>
      p.name.toLowerCase().includes(term.toLowerCase())
    );
  }, [products, term]);

  return (
    <>
      <input value={term} onChange={e => setTerm(e.target.value)} />
      <p>{matches.length} results</p>
    </>
  );
}

What to notice

← Back to the question list