Stateless Components:
If the behavior is independent of its state then it can be a stateless segment. You can use either a function or a class for creating stateless components. But unless you need to use a lifecycle hook in your components, you should go for stateless functional components. There are a lot of benefits if you decide to use stateless functional components: they are easy to write, understand, and test, and you can avoid this keyword altogether.
Stateful Components:
If the behavior of a component is dependent on the state of the component then it can be termed as a stateful component. These Stateful components are always class components and have a state that gets initialized in the constructor.