JSFiddle - React, Tailwind, and code Playground

HTML

<div id="app">
  <app-checkbox
    v-for="category in categories"
    name="categories[]"
    :value="category.value"
    v-model="checked">
    {{ category.label }}
  </app-checkbox>
  <pre>{{ checked }}</pre>
</div>

Vue

Vue.component('app-checkbox', {
  model: {
    prop: 'checked',
    event: 'change'
  },
  props: ['name', 'value', 'checked'],
  template: `
<label>
  <input 
    type="checkbox" 
    :name="name" 
    :value="value" 
    v-model="checked" 
    @change="$emit('change', checked)"
  >
  <slot></slot>
</label>`
});

new Vue({
	el: '#app',
  data: {
  	categories: [
    	{ label: 'Категория 1', value: 1 },
      { label: 'Категория 2', value: 2 },
      { label: 'Категория 3', value: 3 },
    ],
    checked: [2],
  }
});