我们在一个提供者中拥有三个相关但独立的巨大状态对象,并且不确定哪种方式更好地实现 useReducer。
我们正在迁移以使用 useReducer 并且很难将它们全部粘在一个初始状态中。
const initialStateA = {
...
}
const initialStateB = {
...
}
const initialStateC = {
...
}
选项 1:一个单一的 'mainReducer' 来管理一切
const mainReducer = ({reducerA, reducerB, reducerC}, action) => {
// reducerA + reducerB + reducerC....
}
const [state, dispatch] = useReducer(mainReducer, {...initialStateA, ...initialStateB, ...initialStateC})
选项 2:拥有三个单独的 useReducer
const [stateA, dispatchA] = useReducer(reducerA, initialStateA)
const [stateB, dispatchB] = useReducer(reducerB, initialStateB)
const [stateC, dispatchC] = useReducer(reducerC, initialStateC)
哪种方法更好?每个的优点/缺点是什么,或者两者之间几乎没有/没有区别?