我查看了两个着名的React状态管理库的源代码,发现它们都使用React的上下文作为依赖容器(Mobx Provider
,Redux Provider
)。
另一方面,我发现尝试不使用React相关的构造库(特别是上下文)是一个好习惯,我认为可以为依赖容器创建一个单独的模块。这是我的想法的天真实现:
let container = {};
const register = (obj) => {
Object.assign(container, obj);
}
const getAll = () => container;
export { getAll, register };
我错过了什么吗?是否只有使用模块才能支持边缘情况?为什么他们在React中使用context作为依赖容器?
答案 0 :(得分:0)
Context 提供了一种通过组件树传递数据的方法,而无需在每个级别手动向下传递 props。这有助于这些库通过将其附加功能包装起来来控制整个应用程序组件。
尽管 Sebastian Markbage,React 团队提到了 Context API 没有考虑到高频更新。
查看链接了解更多信息:https://github.com/mobxjs/mobx-react-lite/issues/62
试试Rootz JS