title: Why don't redux actions "break" componentDidMount/useEffect?
body: <p>A component will rerender when one of its props changes. That's sort of the whole point of React.</p>
  <p>A component that's subscribed to a slice of Redux state will rerender when that state changes. That's sort of the whole point of Redux. And when you use the <code>connect</code> api, those slices of state are simply props, so it goes straight to my first point.</p>
  <p>SO, what I'm wondering is:</p>
  <pre class="lang-js prettyprint-override"><code>// only executes once, on mount, right?
  componentDidMount() {
    this.something()
    this.props.someReduxActionThatModifiesAnotherPropInThisComponent()
    this.somethingElse()
  }
  </code></pre>
  <p>Since the redux action changes the prop, and the component rerenders, I would think that <code>componentDidMount</code> has had its day and now it's done, and we'll never run <code>this.somethingElse()</code>.</p>
  <p><strong>Obviously I am wrong about this. I know.</strong> Can someone tell me what it is that makes this work? What is the whole flow here? I imagine the answer is maybe simply that a component <em>doesn't</em> rerender from inside CDM?</p>
  <p>And is it any different in <code>useEffect</code>?</p>