title: How to clear v-model used with a select when options change
body: <p>I have a cascading select (two part select) where the options in the second dropdown are determined by the value of the first dropdown. I do this by having a computed property which is based off of the first select. This then feeds the options into the second select. This mostly works fine.</p>
  
  <p>The problem I'm having is if I have selected an option in the second select (which through v-model sets the value of the bound variable in Vue), and then I change the value of the first select. The options for the second select then update, and in that second select I appear to be selected to the empty option. However, the bound variable still has the previously selected value. I'm assuming this is because updating the option values for the second select doesn't actually trigger an input or change event so v-model doesn't respond to anything. I suppose I could fix this with a watcher, but I was hoping for a more elegant solution.</p>
  
  <p>Coded example is here: <a href="https://codepen.io/Slotheroo/pen/ajwNKO/" rel="noreferrer">https://codepen.io/Slotheroo/pen/ajwNKO/</a></p>
  
  <p><strong>JS/Vue:</strong></p>
  
  <pre><code>new Vue({
    el: '#app',
    data: {
      selectedFruit: null,
      selectedVariety: null,
      fruits: {
        "apples": [
          {
            name: "honeycrisp",
            madeBy: "applebees",
          },
          {
            name: "macintosh",
            madeBy: "the steves",
          },
          {
            name: "gala",
            madeBy: "ac/dc",
          },
          {
            name: "pink lady",
            madeBy: "Alecia Beth Moore",
          },
        ],
        "pears": [
          {
            name: "d'anjou",
            madeBy: "Maya D'Anjoulou",
          },
          {
            name: "bartlett",
            madeBy: "Anton Yelchin",
          }
        ],
      },
    },
    computed: {
      fruitVarieties: function() {
        return this.fruits[this.selectedFruit]
      }
    },
  });
  </code></pre>
  
  <p><strong>HTML:</strong></p>
  
  <pre><code>&lt;div id="app"&gt;
    &lt;div&gt;
      &lt;select v-model="selectedFruit"&gt;
        &lt;option value=""&gt;&lt;/option&gt;
        &lt;option v-for="fruitName in Object.keys(fruits)" :value ="fruitName"&gt;{{fruitName}}&lt;/option&gt;
      &lt;/select&gt;
    &lt;/div&gt;
    &lt;select v-model="selectedVariety"&gt;
        &lt;option value=""&gt;&lt;/option&gt;
        &lt;option v-for="fruitVariety in fruitVarieties" :value="fruitVariety"&gt;{{ fruitVariety.name }}&lt;/option&gt;
      &lt;/select&gt;
    &lt;div&gt;
    &lt;/div&gt;
    &lt;p&gt;Selected variety: {{ selectedVariety }}&lt;/p&gt;
  &lt;/div&gt;
  </code></pre>
  
  <p><strong>Steps to reproduce:</strong></p>
  
  <ol>
  <li>Select 'apples' in the first select</li>
  <li>Select 'honeycrisp' in the second select</li>
  <li>Select 'pears' or 'blank' in the first select</li>
  </ol>
  
  <p><strong>Hoped for result</strong></p>
  
  <p>selectedVariety returns to null</p>
  
  <p><strong>Actual result</strong></p>
  
  <p>selectedVariety still equals honeycrisp</p>