1
ReactIntermediate#routing
React compares references to decide what changed, so mutating an object or array in place can skip the re-render entirely and makes bugs hard to trace. Always produce a new value.
// wrong
items.push(x); setItems(items);
// right
setItems([...items, x]);
setUser(u => ({ ...u, name: 'New' }));