代码
提交代码
<!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/vuex@3.1.2/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>
运行结果