使用React编程时如何避免全局状态?

时间:2015-10-23 20:12:03

标签: reactjs flux

大量的例子,描述React和Flux使用全局变量:全局Dispatcher,全局Store等。有没有什么方法可以正确地注入依赖关系来响应组件? Web上有一些文章描述了如何将依赖注入组件与React一起使用,但它基于未记录的奇怪功能,称为“上下文”with unknown future

对我来说,正确的注入是经典的基于构造函数的注入,无需访问全局变量,无需访问静态和其他。

似乎我需要挂钩组件构建过程(地方,new调用)。我能这样做吗?如果是这样,我该怎么做?

1 个答案:

答案 0 :(得分:0)

使用React进行依赖 inversion 的最简单方法是将任何必要的依赖项作为属性传递给需要它们的组件。 Context只是一种通过子组件,孙组件等向下传递道具的方式,而不会在每个可能需要它的组件上列出prop。

你会在野外找到很多这种技术的例子,很多都会利用上下文和其他细节。 React Redux现在很受欢迎;将一个局部变量作为属性传递给顶级<Provider>组件,然后为您连接其余组件。

依赖注入不那么简单,你可能需要某种适当的DI容器或一个DI库来实现这一点。从用户的角度来看,组件并没有真正实例化,就像其他JS对象的方式一样,所以在实例化时间&#34;实例化时间&#34;将依赖关系注入组件并不是我如何处理问题。