a component is a piece of code that can be reused across multiple projects or applications and is designed to interact with other components to build complex systems.
designed to be reusable, they have a well-defined interface and implementation that hides the internal workings from other components, they can be combined with other components to create a larger user interface.
Components provide a consistent user experience throughout the system, can be combined in different configurations to create new functionalities or user interfaces, providing greater flexibility in the development process, can be developed by different teams or individuals, which allows for greater collaboration and specialization
Props are a way to pass data from a parent component to a child component in a React application.
Props can also be used to pass functions from a parent component to a child component, allowing the child component to interact with the parent component.
props flow in a unidirectional manner - from parent to child components. This is known as the “top-down” or “one-way” data flow.