Skip to content
Open
Changes from 1 commit
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
02ecded
Update caveats for Activity rendering behavior (#8067)
TkDodo Oct 13, 2025
a677ba3
Fragment refs - Remove unused ref from focus fragment example (#8056)
slorber Oct 13, 2025
9ef1c47
fix: Breaking up a sentence to make it easier to understand (#8078)
moijes12 Oct 15, 2025
c8843f7
docs: capitalize Error Boundary concept across docs (#6713) (#8077)
Yonas650 Oct 16, 2025
ac0d53e
docs: update recommended full-stack React framework from Remix to Rea…
ardi-zanki Oct 16, 2025
55e37af
Update conference listings for 2025 and 2026 (#8069)
arismarko Oct 16, 2025
44e94f3
Fix typo in useRef.md (#8060)
gramsco Oct 16, 2025
4b92001
Fix typo in Comments component (#7258)
sachanritik1 Oct 16, 2025
593fa1c
docs: fix symbol in prerenderToNodeStream.md (#8019)
WuMingDao Oct 16, 2025
df75927
docs: fix server components link text to match target section heading…
alejorrojas Oct 16, 2025
7571898
Fix cat scrolling example (#7980)
kenkam Oct 16, 2025
6cb7fea
Update hooks link to /reference/react/hooks in /reference/react/api…
WuMingDao Oct 16, 2025
ee5b672
Fix ordered list numbering in useCallback.md (#8011)
rammba Oct 16, 2025
f93cb2e
doc: Update from /react to /react/hooks in /reference/react-dom/hooks…
WuMingDao Oct 16, 2025
896a689
Remove ReactConf notes in blogs (#8082)
rickhanlonii Oct 16, 2025
fe87df5
clarify SRP definition (#8008)
0xPxt Oct 16, 2025
7ecf008
Add React Conf 2025 recap blog post (#8079)
mattcarrollcode Oct 16, 2025
f8c81a0
Use stable activity imports (#8085)
jackpope Oct 18, 2025
4b0935b
Add `<Activity>` bullet to built-in components section (#8087)
imjordanxd Oct 20, 2025
2c7798d
Fix typo in react compiler blog post date (#8091)
poteto Oct 20, 2025
c0af2d0
Add note on error boundary limitations (#8108)
JayCeeKay1991 Oct 29, 2025
e57e912
docs(blog): Add 'React 19.2' to blog sidebar (#8113)
SeungJin051 Oct 31, 2025
f9e2c13
Remove 'esquery' hack to potentially enable Turbopack (#8115)
joshwcomeau Nov 1, 2025
f020b53
docs: add missing 'Static APIs' link to React DOM reference page (#8127)
martinrebo Nov 5, 2025
5c632dc
Nit: wording
gaearon Nov 5, 2025
9c0763d
fix: correct links for Redwood and TanStack (#8121)
clicktodev Nov 5, 2025
abd1fe0
docs: Remove redundant symbols ‘ “ ’ (#8101)
WuMingDao Nov 5, 2025
6a70889
Fix typo in childIds array in initialTravelPlan (#8112)
egvr2002 Nov 5, 2025
d271a7a
Fix incorrect condition in "Chains of computations" example (#8109)
PaulyBearCoding Nov 6, 2025
b440d66
fix(links): update internal links (#8136)
okeken Nov 10, 2025
27576f1
fix(useTransition): correct anchors pointing to non-blocking updates …
SecondThundeR Nov 14, 2025
2534424
fix: Stop SmartyPants from altering TerminalBlock commands (like `--s…
smikitky Nov 15, 2025
4704ce6
blog post (#8170)
rickhanlonii Dec 3, 2025
9c880bd
fix: use correct function name (#8171)
FelixTraxler Dec 3, 2025
e2b59da
add update instructions (#8172)
rickhanlonii Dec 3, 2025
0828d50
Update React releases (#8173)
eps1lon Dec 3, 2025
ac47e52
Update upgrade instructions for React Server Components (Waku section…
dai-shi Dec 4, 2025
d8b1fe8
Upgrade Next from 15.1.0 to 15.1.9 (#8175)
mattcarrollcode Dec 4, 2025
5876ed5
blog: update RSC security vulnerability guidance for Expo (#8177)
vonovak Dec 5, 2025
e22544e
Add Vulnerability in React Server Components to sidebarBlog.json (#8178)
SSakutaro Dec 5, 2025
cffb6a7
Specify that Effects run on commit, not render (#8162)
eps1lon Dec 11, 2025
2a0fed0
12/11 blog post (#8193)
rickhanlonii Dec 11, 2025
1a955f0
rm localhost link (#8194)
rickhanlonii Dec 11, 2025
72f8998
Update instructions (#8195)
rickhanlonii Dec 11, 2025
e44d3b7
Add additional DoS CVE (#8196)
rickhanlonii Dec 11, 2025
9527378
update nextjs instructions (#8197)
rickhanlonii Dec 12, 2025
1e74023
[Blog] Update safe Next.js versions (#8199)
mattcarrollcode Dec 12, 2025
2da4f7f
Update to Next.js 15.1.11 (#8200)
mattcarrollcode Dec 12, 2025
a1ddcf5
Add caveat to useId for cache keys (#8242)
rickhanlonii Jan 16, 2026
ed87618
Update DoS blog post with additional CVE (#8263)
rickhanlonii Jan 26, 2026
303e6b4
Init claude config (#8265)
rickhanlonii Jan 27, 2026
3938fbf
Update deps (#8268)
rickhanlonii Jan 28, 2026
dcc5deb
Add llms.txt (#8267)
gaearon Jan 28, 2026
61b1f51
Add sections to llms.txt and sitemap footer to *.md (#8270)
rickhanlonii Jan 28, 2026
d340c41
Remove feedback (#8271)
rickhanlonii Jan 28, 2026
a2a19ba
feat: Add Accept header content negotiation for markdown (#8272)
icyJoseph Jan 28, 2026
ec13a90
remove outdated note about streaming ssr (#8277)
hernan-yadiel Jan 29, 2026
24ec67e
fix: use beforeFiles (#8276)
icyJoseph Jan 30, 2026
29743d0
Revamp useOptimistic docs (#8264)
rickhanlonii Jan 30, 2026
4c52ab8
Update separating-events-from-effects.md (#8257)
wheresrhys Jan 30, 2026
38b52cf
More claude stuff (#8280)
rickhanlonii Jan 30, 2026
ff17a86
fix: correct typos and improve clarity in useOptimistic.md (#8283)
aurorascharff Feb 2, 2026
e05afa5
useEffectEvent revamp (#8279)
rickhanlonii Feb 4, 2026
bd87c39
Rephrase the rendering explanation paragraph (#8240)
BartoszKlonowski Feb 5, 2026
f653b03
Add .worktrees/ to .gitignore (#8297)
rickhanlonii Feb 10, 2026
46e040e
Fix date of CVE-2026-23864 (2025 => 2026) (#8302)
smikitky Feb 11, 2026
a19c98d
Fix confusion around Activity with text children (#8304)
eps1lon Feb 12, 2026
55a317d
Rewrite useActionState (#8284)
rickhanlonii Feb 15, 2026
a1cc2ab
Added missing prop to useActionState example (#8308)
JakeSaterlay Feb 17, 2026
ea79f76
merging all conflicts
react-translations-bot Feb 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix ordered list numbering in useCallback.md (#8011)
  • Loading branch information
rammba authored Oct 16, 2025
commit ee5b6727ebeff73be5a61b8cabd280ab73e8f7da
8 changes: 4 additions & 4 deletions src/content/reference/react/useCallback.md
Original file line number Diff line number Diff line change
Expand Up @@ -236,10 +236,10 @@ Note that `useCallback` does not prevent *creating* the function. You're always
**In practice, you can make a lot of memoization unnecessary by following a few principles:**

1. When a component visually wraps other components, let it [accept JSX as children.](/learn/passing-props-to-a-component#passing-jsx-as-children) Then, if the wrapper component updates its own state, React knows that its children don't need to re-render.
1. Prefer local state and don't [lift state up](/learn/sharing-state-between-components) any further than necessary. Don't keep transient state like forms and whether an item is hovered at the top of your tree or in a global state library.
1. Keep your [rendering logic pure.](/learn/keeping-components-pure) If re-rendering a component causes a problem or produces some noticeable visual artifact, it's a bug in your component! Fix the bug instead of adding memoization.
1. Avoid [unnecessary Effects that update state.](/learn/you-might-not-need-an-effect) Most performance problems in React apps are caused by chains of updates originating from Effects that cause your components to render over and over.
1. Try to [remove unnecessary dependencies from your Effects.](/learn/removing-effect-dependencies) For example, instead of memoization, it's often simpler to move some object or a function inside an Effect or outside the component.
2. Prefer local state and don't [lift state up](/learn/sharing-state-between-components) any further than necessary. Don't keep transient state like forms and whether an item is hovered at the top of your tree or in a global state library.
3. Keep your [rendering logic pure.](/learn/keeping-components-pure) If re-rendering a component causes a problem or produces some noticeable visual artifact, it's a bug in your component! Fix the bug instead of adding memoization.
4. Avoid [unnecessary Effects that update state.](/learn/you-might-not-need-an-effect) Most performance problems in React apps are caused by chains of updates originating from Effects that cause your components to render over and over.
5. Try to [remove unnecessary dependencies from your Effects.](/learn/removing-effect-dependencies) For example, instead of memoization, it's often simpler to move some object or a function inside an Effect or outside the component.

If a specific interaction still feels laggy, [use the React Developer Tools profiler](https://legacy.reactjs.org/blog/2018/09/10/introducing-the-react-profiler.html) to see which components benefit the most from memoization, and add memoization where needed. These principles make your components easier to debug and understand, so it's good to follow them in any case. In long term, we're researching [doing memoization automatically](https://www.youtube.com/watch?v=lGEMwh32soc) to solve this once and for all.

Expand Down