EPAM Systems interview question

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