没有Vue的Vuex?

时间:2017-09-14 18:36:42

标签: node.js vuex

我想使用Vuex为不使用Vue的服务器端应用程序供电。这可能吗?

const Vuex = require('vuex');

const store = new Vuex.Store({
    state: {
        potatoes: 1,
    },
    getters: {
        doublePotatoes(state) {
            return state.potatoes * 2;
        },
    },
    mutations: {
        addPotato(state) {
            state.potatoes += 1;
        },
    }
});

store.watch((state, getters) => getters.doublePotatoes, console.log);
store.commit("addPotato");

这是我得到的错误:

$ node index.js
/private/tmp/vtest/node_modules/vuex/dist/vuex.common.js:99
if (!condition) { throw new Error(("[vuex] " + msg)) }
                    ^

Error: [vuex] must call Vue.use(Vuex) before creating a store instance.
    at assert (/private/tmp/vtest/node_modules/vuex/dist/vuex.common.js:99:27)
    at new Store (/private/tmp/vtest/node_modules/vuex/dist/vuex.common.js:279:5)
    at Object.<anonymous> (/private/tmp/vtest/index.js:3:15)
    at Module._compile (module.js:573:30)
    at Object.Module._extensions..js (module.js:584:10)
    at Module.load (module.js:507:32)
    at tryModuleLoad (module.js:470:12)
    at Function.Module._load (module.js:462:3)
    at Function.Module.runMain (module.js:609:10)
    at startup (bootstrap_node.js:158:16)

1 个答案:

答案 0 :(得分:0)

我在没有创建Vue应用程序的情况下添加了Vue:

const Vue = require('vue');
Vue.use(Vuex);

我的小型测试商店现在正常运作。我不知道如果Vue.use(Vuex)没有创建Vue应用程序会导致任何问题。

对于服务器端用例,Vuex没有为我的观察者调用每次提交;它批量更改并调用观察者一次。我没有看到这个记录。