尝试打字稿 + 反应钩子 + 上下文 api,我注意到createContext
和useReducer
都需要 'initialState' 的参数。定义一次并将相同的对象传递到两者中感觉很奇怪,这让我想知道有什么区别。
有什么区别?
上下文是一种与父组件共享值的特殊方式,用于深度嵌套的子组件。
https://reactjs.org/docs/context.html
useReducer
完全是另一回事,它是一种使用转换状态的纯函数管理 React 状态的方法。
https://reactjs.org/docs/hooks-reference.html#usereducer
它们彼此无关。它们是完全独立使用的,尽管在某些情况下您可以将它们一起使用,但 React 没有任何固有的东西将它们链接在一起。
因此,它们需要不同的initialState
参数,因为它们是不同的系统,具有不同的要求和不同的用途。