javascript - 为什么状态不在计算中更新?

标签 javascript vue.js vuex

我在 vuex 上苦苦挣扎了几个小时。 这是我第一次使用它,尽管我按照文档进行操作,但有些东西不起作用,但我真的想不通。

所以我有第一个不起作用的 vuex 文档示例。 我有一个返回存储状态的 count 计算值。

它显示在页面上。 起始值为 0, View 显示为 0。 但按下按钮不会改变显示。

如果我直接将商店以常量形式放入 App.js 中,则没问题。

我知道我错过了一些东西......

homeStore.js

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
    state: {
        count: 0
    },
    mutations: {
        increment (state) {
            state.count++
        },
        decrement (state) {
            state.count--
        }
    }
})

App.js

import store from '../store/homeStore'

new Vue({
    el: '#app',
    store,
    computed: {
        count () {
            return store.state.count
        },
    },
    methods: {
        increment () {
            store.commit('increment')
        },
        decrement () {
            store.commit('decrement')
        }
    }
})

最佳答案

利用 Vuex 存储操作

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
    state: { count: 0 },
    mutations: {
        increment (state) {
            state.count++ 
        },
       decrement (state) {
           state.count-- 
       }
    },
    actions: {
        increase ({ commit }) {
            commit('increment')
        },
        decrease ({ commit }) {
            commit('decrement')
        }
    }
 })

使用 this.$store.dispatch('increase') 访问操作方法以增加计数,反之亦然以减少

关于javascript - 为什么状态不在计算中更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55786896/

相关文章:

javascript - 当计数器变量大于数组的长度时,在零处重新启动计数器变量的函数——不起作用

javascript - 用于添加内联样式的 jQuery/JavaScript 切换按钮

javascript - Vuejs - 冒泡自定义事件

javascript - 如何在vue中获取客户端来源

vuejs2 - 当多个组件在 Vuex 中使用相同的操作来获取数据时,如何处理状态?

javascript - Aurelia:如何在导航栏中绑定(bind)App方法?

javascript - 如何在codemirror编辑器中设置不同的尺寸?

css - Vuetify 的网格与 bootstrap 网格兼容吗?

vue.js - 从 vuex 操作访问 $root 实例

javascript - 来自 v-item-group 的错误 : Multiple root nodes returned from render function.