Pergunta de entrevista da empresa EPAM Systems

Explain when to use usestate, useEffect, useContext, useMemo, useCallback, useRef and the difference between them