shadow
基于现有的AutoStore实例创建一个Shadow AutoStore实例,该Shadow AutoStore实例的所有computed和watch是基于原AutoStore实例进行计算。
ts
const store = new AutoStore({
order: {
price: 10,
count: 3,
total: computed((scope: any) => scope.price * scope.count),
},
});
const shadowStore = store.shadow({
user: 'fisher',
orderTotal: computed((scope: any) => {
return scope.order.price * scope.order.count;
}),
});
expect(shadowStore.state.orderTotal).toBe(30);
store.state.order.count = 4;
expect(shadowStore.state.orderTotal).toBe(40);- 上例中创建了一个
shadowStore,该shadowStore的orderTotal是基于store.state计算出来的,所以当order.count改变时,orderTotal也会改 变。 - 创建的
shadowStore实例也是一个普通的AutoStore实例,所以可以像使用普通AutoStore一样使用它。区别就在computed和watch是基于原AutoStore实例进行计算。