how to use?
import create from 'remixs';
interface IStore {
count: number,
countPlus: () => void,
countMinus: () => void,
countReset: () => void,
}
export const useStore = create<IStore>(
set => ({
count: 0,
countPlus: () => set( state => {state.count++ }),
countMinus: () => set( state => {state.count-- }),
countReset: () => set( state => {state.count = 0 }),
}),
compose(logger), //中间件,仓库中集成了logger中间件,可以直接调用
shallow, // 开启浅比较 可以优化一些无用render
);
const {count, countPlus, countMinus, countReset, config} = useStore( state => state);
config中返回了经过中间件处理过的store。
注意:中间件不会改变create中回调函数的行为,只能改变在useStore中返回的config中的事件行为。
这样可以更好的区分默认事件和中间件托管事件。
config中包含了,set,get,subscribe,destroy事件(即Store)。