NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2622 most downloaded on npm
React Hooks library for remote data fetching
Last release 12 days ago
22 Sep 2026
Release timing varies
gaps range from 9 days to 4 months
Nearly every release is documented
notes for 57 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
8 years old
181 releases · first in 2018
Feature: provide config.isPaused indicating idle state and stop revalidation: #845
Huge thanks to @huozhi, @MoonBall, and @promer94 for helping!
Test(fetch) add test for default fetcher: #834
Huge thanks to @promer94 and @darrenjennings for helping!
One column per quarter.
Fix: mark isValidating as false when key is falsy: #757
Huge thanks to @huozhi, @mingcenwei, @promer94, @CrutchTheClutch, and @matamatanot for helping!
Fix race condition when calling mutate synchronously: #735
mutateCallback types: #745Huge thanks to @ije, @umidbekkarimov, @matamatanot, and @promer94 for helping!
Allow passing null as the fetcher function for lazy execution: #730
Huge thanks to @maggo and @promer94 for helping!
Nothing published for this version
Nothing published for this version
Feat: make swr more configurable across platform: #690
Huge thanks to @thinceller, @huozhi, and @bcomnes for helping!
Fix: missing dedupe in updaterInterface: #688
Huge thanks to @huozhi and @Brew-Brew for helping!
Remove unnecessary dependencies from mutate and setSize: #665
mutate and setSize: #665Chore: swap fde for dequal: #655
Huge thanks to @lukeed and @innocentiv for helping!
Bump handlebars from 4.5.2 to 4.7.6: #646
Huge thanks to @anc95, @blackarctic, @jmichaliga, and @sergiodxa for helping!
Chore: optimization dispatch: #621
Huge thanks to @anc95 and @ath92 for helping!
Add useDebugValue to show the data label in the React DevTools: #578
eventsRef should trigger the lastest version of config callbacks: #521Huge thanks to @Kexin-Li, @MHA15, @tanmaylaud, @lintuming, @lynxtaa, @promer94, @thomaswang, and @morgs32 for helping!
Add persistSize option to useSWRInfinite: #490
Huge thanks to @huozhi, @dominictwlee, @lolPants, @MoeCasts, @markozxuu, @cristianbgp, @ashfaqnisar, @matamatanot, and @Kexin-Li for helping!
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Docs: update notes for returned data from mutate section: #394
Huge thanks to @huozhi, @ties-v, @shyamlohar, @TheHolyWaffle, @promer94, @alexandregv, @joshkel, @Narigo, and @sergiodxa for helping!
Nothing published for this version
Huge thanks to @leo for helping!
Huge thanks to @leo for helping!
Minor documentation improvements: #321
Huge thanks to @timneutkens, @akx, @Kerumen, @zusinShinpei, @matamatanot, @promer94, @hikaru7719, @sergiodxa, @jericopulvera, @huozhi, @sarupbanskota, and @ciak0 for helping!
Nothing published for this version
Nothing published for this version
Nothing published for this version
Change useRequest.js to use mutate: #292
mutate: #292Huge thanks to @mattfwood, @zhengjitf, @buffaybu, @nulladdict, @matamatanot, @joshkel, and @neolefty for helping!
Huge thanks to @sergiodxa for helping!
Huge thanks to @sergiodxa for helping!
Add regression test for WeakMap key is null: #273
null: #273examples/axios-typescript: #265Huge thanks to @sergiodxa, @dominictwlee, and @Svish for helping!
Check if addEventListener and removeEventListener exists: #217
null: #251Huge thanks to @vassbence, @r13v, @jinxin0112, @onigoetz, @robinandeer, @lllllllqw, @aequasi, and @darrenjennings for helping!
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
skip immediate revalidation when initalData is provided: #211
Huge thanks to @addstar34 and @promer94 for helping!
Prevent polling when browser is offline: #203
Huge thanks to @daneden for helping!
Nothing published for this version
Allow newer minor versions of React as peer dependency: #181
Huge thanks to @Svish, @markotom, @MSekrst, @wendellhu95, @Regaron, and @LiuuY for helping!
Add react-native entry point: #149
Huge thanks to @n3tr, @zeroslope, @Svish, and @BloodShura for helping!
Nothing published for this version
Add example on how to use fetch + mutate to prefetch data: #120
Huge thanks to @sergiodxa, @dancerphil, and @yesmeck for helping!
Add example sharing local state between components: #76
@zeit/ncc: #89Huge thanks to @afc163, @aequasi, @pacocoursey and @wendzhue for helping!
Add an autocomplete suggestions examples: #88
Huge thanks to @sergiodxa, @pacocoursey, @tusbar, and @StarHyx for helping!
Replace useLayoutEffect by useIsomorphicLayoutEffect to avoid ssr warnings: #85
Huge thanks to @bmvantunes for helping!
Add example using SWR to sync storage between tabs: #74
pageSWRs to swrDataToOffset: #52Huge thanks to @sergiodxa, @pacocoursey for helping!
Improve export for IntelliSense: #56
Huge thanks to @aequasi, @n3tr, and @Go7hic for helping!
Nothing published for this version
Fix entry files: 8b849e39d98686c5b9e915095c12e235f3e56fc3
Adding types to ConfigInterface for callbacks: #35
fast-deep-equal: #53Huge thanks to @aequasi, @Timer, @marcelmokos, @sergiodxa, and @sztadii for helping!
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →