EPAM Systems Interview Question

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