useMemo for an expensive derivation in React
React interview exercise on Performance, difficulty 2 of 3. Solve it in the editor beside a worked example; the tests run the moment you do.
Filtered has `items`, a `query` and a `compute(items, query)` prop that returns the matches (treat it as expensive). Render the result as <li>s and a <button className="tick"> that re-renders the component for an unrelated reason. compute must run only when items or query change: not on ticks.
Each exercise pairs a worked example with a twin problem to solve in a real editor; the tests run the moment you do. Progress is saved in your browser, and in your account if you sign in.