##section 4 - controlled and uncontroller component
if we can access variable of component from outside - controller. (user of props ) if component variable cannot change or update outside of compoenet -- uncontroller (declare the variable using usestate)
##section 5 HOC - component that return component its work as wraper for component to do some functionality for that conmpoent and pass props to component. (: HOCs are a pattern in React where a function takes a component and returns a new component with additional functionality. HOCs allow you to reuse component logic, share code between components, and enhance components with additional features. They are often used for cross-cutting concerns like authentication, logging, or data fetching.)
Context is primarily used for sharing data that needs to be accessed by many components at different levels of the component tree. HOCs are used for enhancing individual components with additional functionality or behavior, such as adding props, state, or lifecycle methods