A senior wraps an expensive computation in useMemo but notices it still runs during the very first render even though there is nothing cached yet. A junior claims useMemo should skip the first computation. Who is right and why?
const sorted = useMemo(() => expensiveSort(data), [data]);