title: @click on checkbox add/remove data
body: <p>I currently have the following scenario:</p>
  
  <p>I have multiple checkboxes, once any is clicked, the value of it will get added to an array. If the checkbox is unchecked then the item needs to be removed out of the array again.</p>
  
  <pre><code>selectAddOn(addOnId) {
      if (! this.selectedAddOns.includes(addOnId)) {
          this.selectedAddOns.push(addOnId);
      }
  }
  </code></pre>
  
  <p>The following works and it adds them to my <code>selectedAddOns[]</code>. But when the checkbox is checked again, it is not removed. Sure, I could just use <code>else</code>, but... </p>
  
  <p>Unfortunately, the browser behavior is when you click on a <code>&lt;label&gt;</code>, a click event will automatically be triggered on the <code>&lt;input&gt;</code>, so the outer div receives 2 events, one from label, one from input. I am aware that I can work around this by adding <code>@click.prevent</code> on the <code>&lt;label&gt;</code>, but this then will not add my custom checkbox styles.</p>
  
  <pre><code>&lt;div @click="selectAddOn(index)" class="col-6" v-for="(addOn, index) in categories[categoryId].addOns"&gt;
      &lt;label class="custom-control custom-checkbox"&gt;
          &lt;input type="checkbox" class="custom-control-input"&gt;
          &lt;span class="custom-control-indicator"&gt;&lt;/span&gt;
          &lt;span class="custom-control-description"&gt;{{ addOn.name }} (+ ${{ addOn.price }})&lt;/span&gt;
      &lt;/label&gt;
  &lt;/div&gt;
  </code></pre>
  
  <p>Any idea on how I can work around this scenario?</p>