Vuex

Vuex

HTML

<div id="app">
  <input type="checkbox" v-model="checked">
  <button @click="toggleChecked">toggle checked</button>
  <div>{{ checked ? 'Wow, I\'m checked!!' : 'false' }}</div>
</div>
<script src="https://cdn.jsdelivr.net/g/vue@2.0.3,vuex@2.0.0"></script>

JavaScript

const store = new Vuex.Store({
  state: {
    checked: false
  },
  mutations: {
    updateChecked(state, val) {
      state.checked = !!val
    }
  }
})

new Vue({
  store,
  el: '#app',
  computed: {
    checked: {
      get() {
        return this.$store.state.checked
      },
      set(val) {
        this.$store.commit('updateChecked', val)
      }
    }
  },
  methods: {
    toggleChecked() {
      this.checked = !this.checked
    }
  }
})