Where to place logic for loading initial server data in React app?
Edit: Dan Abramov recently stated
In future versions of React we expect that componentWillMount will fire more than once in some cases, so you should use componentDidMount for network requests.
In componentDidMount
Read here.
Fetch data in componentDidMount. When the response arrives, store the data in state, triggering a render to update your UI.
When fetching data asynchronously, use componentWillUnmount to cancel any outstanding requests before the component is unmounted.
Documentation is really scarce on "why in componentDidMount
". I believe componentWillMount
is not called if you use server-side render, so this could be a reason why componentDidMount
is preferred.