title: In React, what is the difference between setState and forceUpdate
body: <p>In a component that does <em>not</em> override shouldComponentUpdate, is there any difference between forceUpdate and setState? </p>
  
  <p>Update: I already know what the docs say and that forceUpdate is not the recommended way to do it. I am just trying to gain a deeper understanding of what is going on. I'd like to know why? And I already know that setState merges the passed object (state "delta" - kind of like an sql update) with the current state object. </p>
  
  <p>Suppose a simple use-case: no need for undo or time-travel functionality. No need to do pointer comparison inside shouldComponentUpdate. In fact, no need to use shouldComponentUpdate at all.</p>
  
  <p>In that case, it appears to me, that mutating state and calling forceUpdate() is a perfectly valid way to use React. From a black box perspective, these two techniques appear to have the exact same effect:</p>
  
  <p><strong>Technique #1:</strong>
  this.state.x = 10;
  this.forceUpdate();</p>
  
  <p><strong>Technique #2:</strong>
  this.state.setState({x:10});</p>
  
  <p>Again, I already know that some people prefer to never mutate state. And to use the functional programming style. I was just wondering if there is any technical reason to avoid Technique #1. Or am I missing something?</p>