Writing your data fetching logic by hand is over. Tell React Query where to get your data and how fresh you need it to be and the rest is automatic. React Query handles caching, background updates and stale data out of the box with zero-configuration.
If you know how to work with promises or async/await, then you already know how to use React Query. There's no global state to manage, reducers, normalization systems or heavy configurations to understand. Simply pass a function that resolves your data (or throws an error) and the rest is history.
React Query is configurable down to each observer instance of a query with knobs and options to fit every use-case. It comes wired up with dedicated devtools, infinite-loading APIs, and first class mutation tools that make updating your data a breeze. Don't worry though, everything is pre-configured for success!
Instead of writing reducers, caching logic, timers, retry logic, complex async/await scripting (I could keep going...), you literally write a tiny fraction of the code you normally would. You will be surprised at how little code you're writing or how much code you're deleting when you use React Query.
With React as the only dependency, React Query is extremely lean, but also strategically packed to the brim with features you're bound to need in almost any project. From weekend hobbies all the way up to enterprise e-commerce systems (lookin' at you Walmart!), React Query is jam packed with battle-hardened tools to help you succeed.