Specify that Effects run on commit, not render #8162
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
preview: useEffect reference docs
I had two instances recently where people were confused by useEffect not running after each render (facebook/react#35221 and facebook/react#34730). I think the docs aren't super clear about this and you need a bit of a React brain to infer the actual behavior.
In the learn section where we introduce the render and commit phase, we don't talk about Effects: https://react.dev/learn/render-and-commit. That seems fine to me since Effects are an advanced concept.
However, the
useEffectreference docs, say that the setup runs after "render" not after "commit": https://react.dev/reference/react/useEffect#parametersI went through all mentions of
renderin the Effect reference docs and replaced it with "commit" when it talked about the timing of the Effect execution.