vuex基本状态在模块之间共享

时间:2019-08-10 18:05:05

标签: vue.js vuex nuxt

我正在nuxt存储中使用多个vuex模块,我想在多个模块中使用相同的基本状态,如下所示:

// ~/utils/Sharedstore.js
export default {
  state: {
    byId: {},
    allIds: [],
  }
},

// ~store/entities/myEntity.js
import SharedStore from '~/utils/SharedStore';

export const state = () => ({ ...SharedStore.state });

但是,当我改变一个状态时,所有模块的状态都会改变。

当我为所有模块执行此操作时,它将起作用:

// ~store/entities/myEntity.js
export const state = () => ({
  byId: {},
  allIds: [],
});

问题是我想将重复的基本状态放在一个位置(SharedStore.state)。为什么在导入时不起作用?如何解决?

1 个答案:

答案 0 :(得分:0)

我找到了解决方法:

#include <iostream> int firstPermutation(int n, int k) { return ((1 << k) - 1) << (n - k); } int shiftLast1(int a) { return (a - 1) ^ ((a^(a - 1)) >> 2); } int add1AfterLast1(int a) { return a | (((a^(a - 1)) + 1) >> 2); } int nextPermutation(int a) { if ((a & (a + 1)) == 0) { return 0; } if (a & 1) { return add1AfterLast1(nextPermutation(a >> 1) << 1); } else { return shiftLast1(a); } } int main() { int n = 6; int k = 3; int a = firstPermutation(n, k); do { for (int i = 0; i < n; i++) { std::cout << ((a >> (n - 1 - i)) & 1); } std::cout << std::endl; } while ((a = nextPermutation(a))); }

需要使用JSON.parse(JSON.stringify(obj))而不是传播方式深度克隆对象。

我猜byId和allIds的内容在传播时仍然被引用使用吗?