我正在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)。为什么在导入时不起作用?如何解决?
答案 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的内容在传播时仍然被引用使用吗?