Course contentsShow
React
Lesson 5 of 2,3961. Why React ExistsFree lesson

The Problem of Shared Mutable State

Why multiple parts of an application modifying the same data leads to bugs and unpredictable UI behavior.

The Problem of Shared Mutable State

What you'll learn: Why letting multiple parts of your application change the same data creates chaos and bugs.

The Kitchen Analogy

Imagine a kitchen whiteboard showing "Eggs remaining: 12". Three cooks all look at it, see 12 eggs, and each decides to use 5 eggs for different recipes. They don't update the board until after they're done. Suddenly, you're 3 eggs short, but no one knows who caused the problem or when it happened.

This is shared mutable state — multiple parts of your code can read and modify the same piece of data at any time.

Why This Breaks Applications

In traditional web development (like the jQuery era we discussed), different parts of your JavaScript could directly change the same variables:

  • A shopping cart total stored in a global variable
  • Three different functions all updating that same variable
  • Each function also trying to update different parts of the DOM to show the new total

When Function A changes the cart total, Functions B and C might not know about it. They might be working with old data. Or worse, they might both try to update it at the same time, overwriting each other's changes.

The Symptoms

You get unpredictable behavior:

  • Click a button once, something happens twice
  • Update one part of the page, another part shows stale data
  • Bugs that only appear "sometimes" (depending on timing)
  • No clear trail showing who changed what and when

This made debugging a nightmare because you couldn't track down where changes originated.

Key Takeaway: When multiple code sections can freely modify the same data without coordination, your UI becomes unpredictable and buggy — you lose control over the state-view synchronization we need.