Why does React call an Effect's cleanup function before running the Effect again?
To improve JavaScript garbage collection
To stop synchronization tied to old dependency values before starting a new one
To prevent all future renders
To reset component state automatically