← React Beginner Questions - Set 3 Q30
React Beginner Questions - Set 3
It caches a computed value until its dependencies change, instead of recomputing on every render.
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>
</>
);
}