🎯 What you'll practice: React.memo, useMemo, and useCallback — and profiling before optimising.
1-A 2-B 3-B 4-B | 5 = Profiler 6 = prop 7 = const CourseCard=memo(function CourseCard({title}){return <div>{title}</div>;}); 8 = const filtered=useMemo(()=>courses.filter(c=>c.cat===filter),[courses,filter]); 9 = Each memo/useMemo/useCallback call itself has a small overhead (comparing dependencies); adding them to cheap computations or rarely-changing components can add more overhead than it saves | 10 = const CourseCard=memo(({title,onEnroll})=><div>{title}<button onClick={onEnroll}>Enroll</button></div>); function Dashboard({courses,filter}){const filtered=useMemo(()=>courses.filter(c=>c.cat===filter),[courses,filter]);const handleEnroll=useCallback(id=>enrollAPI(id),[]);return filtered.map(c=><CourseCard key={c.id} {...c} onEnroll={()=>handleEnroll(c.id)}/>);}