Effect
Effects are functions that run inside a component under certain circumstances.
An effect in a useEffect hook is triggered when either value in a set of dependencies changes. Furthermore, when an effect in useEffect runs, it can define a cleanup function that should run in one of two cases: before the effect is triggered again or if the component unmounts.
