This course is currently designed for React Query v2, which is not the latest version, but still extremely similar. While v3 introduced a few breaking changes to API, these changes have very little affect on the core principles and concepts you will learn in this course. Any gaps in API or presentation of this course can be filled by reading our "Migrating to React Query v3" guide.

Data Fetching in React sucks.

You've likely tried countless "global state" libraries, useFancyPromise hooks and maybe even attempted to write your own solutions only to end up back in the same place: Writing TONS of code to handle seemingly endless data fetching scenarios. But WHY?

Server state and client state are fundamentally different.

Server state:

  1. Is persisted remotely in a location you do not control
  2. Requires asynchronous APIs for fetching and updating
  3. Implies shared ownership and can be changed by others without your knowledge
  4. Will eventually become "stale" or "outdated" during the lifecycle of your app.

So, it's time we stop trying to force server-state into our client-state tools and instead, harness the power of its unique challenges for our benefit:

  • Caching... (possibly the hardest thing to do in programming, but game-changing)
  • Deduping multiple requests for the same data into a single request
  • Updating out of date data in the background
  • Controlling when data is "out of date"
  • Performance optimizations like pagination and lazy loading data
  • Managing memory and garbage collection of server state
  • Optimistic updates and rollbacks for "instant" UI and user experiences.

React Query turns these challenges into powerful features.

It is the best tool available for solving all of these issues out-of-the-box, with zero configuration, and allowing for fine-grained customization as your application grows.

What will I learn?

In this course, you will learn how to wield React Query as your go-to weapon of choice for defeating and overcoming the challenges and hurdles of server state. You will learn to control your asynchronous data in your apps before it starts to control you.

At the end of this course, you will:

  • Have a better understanding of server-state and its unique challenges, patterns and how to solve for them
  • Be a master of caching, and have the tools and knowledge to configure it, instead of implementing it by hand yourself.
  • Know the entire core React Query API and how to pragmatically use all of it's unique features in your applications

React Query and the concepts you learn will help you:

  • Remove many lines of complicated and misunderstood data fetching code from your application and replace them with just a handful of lines of React Query logic.
  • Make your application more maintainable and easier to build new features without worrying about wiring up new server state data sources
  • Have a direct impact on your end-users by making your application feel faster and more responsive than ever before.

Meet your instructor

Tanner Linsley

Open Sourcerer, Co-Founder, VP of UI/UX @ and self-nominated React junkie of the year.

He has built and still maintains several well-known open source libraries like React Table, React Query, React Form, React Charts, React Static, and even Chart.js.

All of his projects and contributions combined have driven over hundreds of thousands of Github stars and hundreds of millions of NPM installs.

React Query is trusted in production by developers at:

Google, Walmart, PayPal, Amazon, Microsoft, Target, CarFAX, HP, MLB, Volvo, Ocado,,, ReactBricks,

Get Started!


Unlimited Access (Forever)

Unlimited access to the React Query Essentials course content

Unlimited streaming access to all React Query Essentials course module video content.


Easy Does It (30 Days)

Full access to course content for 30 days

Full streaming access to all React Query Essentials course module video content for 30 days from signup.

Want access forever? Try the Standard Access Plan!


Binge It! (3 days)

Full access for 3 days

Full access to all course content for 3 days from the time of signup.

Course Outline

Estimated Duration: ~ 3 hours

Available in days
days after you enroll
Available in days
days after you enroll
Available in days
days after you enroll
Available in days
days after you enroll
Available in days
days after you enroll
  Optimistic Updates
Available in days
days after you enroll
  Paginated & Infinite Queries
Available in days
days after you enroll
  Server Side Rendering
Available in days
days after you enroll