【问题标题】:use of Context alongside Redux在 Redux 旁边使用 Context
【发布时间】:2020-06-18 17:18:20
【问题描述】:
我在我的应用程序中大量使用 Redux。我在Context 中存储的属性也非常有限:
- 当前登录用户的用户名
- 屏幕几何信息(以适应浏览器窗口大小调整)
这是一种反模式吗?我应该将所有内容都转移到 Redux 并完全放弃 Context 吗?我倾向于回答是的。所以问题是:
是否存在在同一个应用程序中同时使用 Context 和 Redux 的有效用例,还是代码异味?
【问题讨论】:
标签:
reactjs
redux
react-context
【解决方案1】:
不,我想不出同时使用两者是个好主意的单一原因。
一般来说,“如果你使用 Redux 只是为了避免将 props 传递给深度嵌套的组件,那么你可以用 Context API 替换 Redux”。
如果您需要更高级的功能,例如可预测的状态容器、异步操作等,请选择 Redux。
请原谅双关语,但两者之间的“上下文切换”只会让您、您的应用程序和您应用程序的未来开发人员感到困惑。
在你的情况下,username 的东西肯定属于 redux reducer,屏幕几何信息感觉就像它足够基本,可以在 React 中使用并作为道具传递下去。不过,这当然也可以存储在 Redux 状态中