title: Is it inefficient that every mounted graphQL component just requeries all the time?
body: <p>So, I'm using Apollo-link-state for local state management on an app I'm building, and I have a Modal component that pops up if <code>modalData</code> in the state changes. For it to listen to this, it's wrapped in a <code>&lt;Query&gt;</code> component, like so:</p>
  
  <pre><code>render(){
      return (
          &lt;Query query={GET_MODAL_DATA}&gt;
            {({data}) =&gt; {
              const currentModal = data.currentModal;
  
              return (
                  &lt;CSSTransition in={currentModal.operation ? true : false} unmountOnExit classNames="modal" timeout={{ enter: 1, exit: 200 }}&gt;
                      &lt;div className="modal-container" onClick={this.closeModal}&gt;
                          &lt;div onClick={e =&gt; e.stopPropagation()}&gt;
                              &lt;h2&gt;
                                  { currentModal.operation+' '+currentModal.dataType }
                              &lt;/h2&gt;
                          &lt;/div&gt;
                      &lt;/div&gt;
                &lt;/CSSTransition&gt;
              )
            }}
          &lt;/Query&gt;
      )
  }
  </code></pre>
  
  <p>with this arrangement, however, it re-renders (and re-queries) no matter what you do. </p>
  
  <p>Change route? Re-renders. Change another component's local state? Re-renders. Change text fields? Re-renders. </p>
  
  <p>Perhaps this is how Apollo is meant to work, but coming from Redux it seems kinda inefficient for every mounted component to re-query if you so much as breathe in the direction of your browser. </p>
  
  <p>Is that what it's meant to do, or have I set something up incorrectly?</p>