useEffect : useEffect is close replacement for componentDidMount, componentDidUpdate and componentWillUnmount.
Context: Context provides a way to pass data through the component tree without having to pass props down manually at every level.
useReucer: useReducer is a hook that is used for state management. its an alternative to useState. useState is built using useReducer. useReducer(reducer, initialState) -> reducer(currentState, action);
useCallback : useCallback is a hook that will return a memorized version of the callback function that only change if one of the dependencies has changed.
useMemo : The useMemo() hook allows you to memoize functions so that the function is prevented from being called on every render.