Using useState when no rerender is neededUsing router.push instead of a linkHandling actions via useEffectSingle responsibility componentsSingle responsibility useEffects Read the full article