I\'m trying to understand when to use React functional components vs. classes and reading from the docs they don\'t really go into detail. Can you give me some primary examp
You only need a class
component when you:
componentDidMount
etc.Functional Component
Example :
const Foo =()=>
{
return <Text>Hi there!</Text>
}
Class Component
Example :
class Foo extends Component {
render(){
return <Text>Hi There!</Text>
}
}
If we use Redux, there will be two kinds of Components:
Redux's creator Dan Abramov write an article Presentational and Container Components:
Presentational Components are written as functional components unless they need state, lifecycle hooks, or performance optimizations.
Even though we don't use Redux. We can also separate the components as Presentational Components and Container Components.
Cory House's article React Stateless Functional Components: Nine Wins You Might Have Overlooked let me know the Functional Components's advantages, Functional Components are more:
Functional Components are stateless, which is its limit.
But fortunately, most of time, we don't need state.
Stateless functional components are useful for dumb/presentational components. Presentational components focus on the UI rather than behavior, so it’s important to avoid using state in presentational components. Instead, state should be managed by higher-level “container” components, or via Flux/Redux/etc. Stateless functional components don’t support state or lifecycle methods. This is a good thing. Why? Because it protects from laziness.
See, it’s always tempting to add state to a presentational component when you’re in a hurry. It’s a quick way to hack in a feature. Since stateless functional components don’t support local state, you can’t easily hack in some state in a moment of laziness. Thus, stateless functional components programatically enforce keeping the component pure. You’re forced to put state management where it belongs: in higher level container components.