Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases now! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
State Management with React Query

You're reading from   State Management with React Query Improve developer and user experience by mastering server state in React

Arrow left icon
Product type Paperback
Published in May 2023
Publisher Packt
ISBN-13 9781803231341
Length 228 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Daniel Afonso Daniel Afonso
Author Profile Icon Daniel Afonso
Daniel Afonso
Arrow right icon
View More author details
Toc

Table of Contents (14) Chapters Close

Preface 1. Part 1: Understanding State and Getting to Know React Query
2. Chapter 1: What Is State and How Do We Manage It? FREE CHAPTER 3. Chapter 2: Server State versus Client State 4. Chapter 3: React Query – Introducing, Installing, and Configuring It 5. Part 2: Managing Server State with React Query
6. Chapter 4: Fetching Data with React Query 7. Chapter 5: More Data-Fetching Challenges 8. Chapter 6: Performing Data Mutations with React Query 9. Chapter 7: Server-Side Rendering with Next.js or Remix 10. Chapter 8: Testing React Query Hooks and Components 11. Chapter 9: What Changes in React Query v5? 12. Index 13. Other Books You May Enjoy

What is state in React?

State is the heart of your React application.

I challenge you to try to build a React application without any type of state. You’d probably be able to do something, but you would soon conclude that props cannot do everything for you and get stuck.

As mentioned in the introduction, state is a mutable data source used to store your data.

State is mutable, which means that it can be changed over time. When a state variable changes, your React component will re-render to reflect any changes that the state causes to your UI.

Okay, now, you might be wondering, “What will I store in my state?” Well, the rule of thumb that I follow is that if your data fits into any of the following points, then it’s not state:

  • Props
  • Data that will always be the same
  • Data that can be derived from other state variables or props

Anything that doesn’t fit this list can be stored in state. This means things such as data you just fetched through a request, the light or dark mode option of a UI, and a list of errors that you got from filling a form in the UI are all examples of what can be state.

Let’s look at the following example:

const NotState = ({aList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10
  ]}) => {
  const value = "a constant value";
  const filteredList = aList.filter((item) => item % 2 ===
    0);
  return filteredList.map((item) =>
    <div key={item}>{item}</div>);
};

Here, we have a component called NotState. Let’s look at the values we have in there and use our rule of thumb.

The aList variable is a component prop. Since our component will receive this, it doesn’t need to be state.

Our value variable is assigned a string value. Since this value will always be constant, then it doesn’t need to be state.

Finally, the filteredList variable is something that can be derived from our aList prop; therefore, it doesn’t need to be state.

Now that you are familiar with the concept of state, let’s get our hands dirty and understand how can we manage it in React.

You have been reading a chapter from
State Management with React Query
Published in: May 2023
Publisher: Packt
ISBN-13: 9781803231341
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime