It is a lightweight in-memory representation of the actual DOM to track changes in the UI and efficiently update the real DOM when necessary.
- useState: to add and manage state to functional components
- useReducer: to add and manage complex state
- useEffect: to execute side effects during rendering and hooking into lifecycle hooks
- useMemo: to memoise the output of a function
- useCallback: to memoise a function declaration when a function is passed to children components that are memoised.
- useContext: to access context object
- useLayoutEffect: synchronously useEffect
- useRef: to access and manipulate DOM and store values that do not cause rerender on updates.
- use
- useDebugValue
- useId
- useDeferredValue
- useTransition
- useSyncExternalStore
- useInsertionEffect
- useImperativeHandle