代碼
提交代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="app">
<div>購物車數量:{{count}}</div>
<button @click="add">無參 mutation(+1)</button>
<button @click="addTen">攜參 mutation(+10)</button>
<button @click="addByObject">攜帶對象類型的參數 mutation(+5)</button>
<button @click="commitByObject">對象類型提交 mutation(+3)</button>
</div>
</body>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/[email protected]/dist/vuex.js"></script>
<script type="text/javascript">
const store = new Vuex.Store({
state: {
count: 0
},
mutations: {
// 無參 mutation
increment(state) {
state.count++
},
// 帶參 mutation
incrementByCount(state, count) {
state.count = state.count + count
},
// 對象類型參數 mutation
incrementByObject(state, payload) {
state.count = state.count + payload.count
},
},
})
var vm = new Vue({
el: '#app',
store,
methods: {
add() {
this.$store.commit('increment')
},
addTen() {
this.$store.commit('incrementByCount', 10)
},
addByObject() {
this.$store.commit('incrementByObject', {
count: 5
})
},
commitByObject() {
this.$store.commit( {
type: 'incrementByObject',
count: 3
})
}
},
computed: {
count() {
return this.$store.state.count
}
}
})
</script>
</html>
運行結果