‫Now that we have created
‫a few different components,
‫let's quickly talk about different component categories
‫that naturally emerge in most React code bases.
‫So most of your components will naturally fall
‫into one of three categories,
‫stateless or presentational components,
‫stateful components or structural components.
‫And I say naturally
‫because we shouldn't force our components
‫into one of these categories.
‫Now, these are all still normal React components
‫in our code, so just like the ones
‫that we have been writing.
‫But we can categorize them in this way
‫when we think about components.
‫There are also other categories that could be used,
‫but I think that these make the most sense.
‫So starting with stateless or presentational components,
‫as the name says, these don't have any state.
‫Usually, they are components that receive some props
‫and then they simply present that data
‫or even some other content,
‫and therefore the name presentational.
‫Many times these are quite small components,
‫such as the logo, num results
‫and movie components in our current app.
‫Next, stateful components are simply components
‫that do have state.
‫Now, just because these components have state,
‫that doesn't mean that they can't be highly reusable.
‫For example, the search component that we built
‫does have state and we could reuse this input
‫as many times as we wanted throughout the app.
‫Now finally, you can think of structural components
‫as pages, layouts, or screens of the application,
‫which are oftentimes the result
‫of composing many smaller components together.
‫And more about composition later in this section.
‫So these structural components can be large
‫and non reusable components, but they don't have to.
‫Structural components are sometimes quite small too.
‫What matters is that they are responsible
‫for providing some sort of structure
‫to applications such as pages or layouts.
‫Therefore, these components might not be present
‫in really small apps,
‫but you will definitely have a few structural components
‫as your app grows bigger and bigger.