我正在尝试为Web应用程序创建具有层次路由器的MVC架构。目标是管理所有业务逻辑,并具有清晰的模式。
让我做一些例子:
- 路由索引称为
- 称为索引控制器;它有责任将视图插入页面。
现在问题是:
-
如何管理模型和收集或服务的所需实例?它们必须存储在哪里?如果我将它们存储在控制器中,如何从外部资源中访问?
-
我如何使用其业务逻辑和必需的对象实例管理所有没有专用路线的UI组件(如登录覆盖callble)?
我使用的是带有通量模式的反应。我发现的一种解决方案是创建控制器,而无需将其直接映射到路由。这样,我们让我们将控制器都用于路由处理程序和另一个控制器。在这种情况下,我们如何使控制器可以从任何地方访问?
我知道这取决于用法案例,但是我试图找到一个最佳实践,以便拥有明确管理模式。
预先感谢!
这是一个非常开放的问题,但我会尝试回答。
-
管理React依赖性的方法是通过将其作为道具传递。通过将它们作为道具传递或传递他们作为道具管理的数据,接收组件不必知道它们来自何处。然后,您将这种类型的决策推动到层次结构尽可能远。这样一来,您最终将所有的接线集中在一个地方,这很不错。如果您使用的是
react-router
,则将路由handler
组件设置为仅获取依赖项的组件,并在所需的依赖项中渲染另一个组件。 -
最明显的方法是将登录组件需要的依赖项传递给呈现登录组件的组件。它具有清晰和具体的好处,但有缺点是您需要将这些依赖性遍布到各地,而且很容易错过一些。React中有一些称为
context
的东西,可以使组件树共享上下文而无需传递上下文。您可以在此处找到更多信息:https://www.tildedave.com/2014/11/11/15/introduction-to-contexts-in-react-js.html。当然,另一个选项是将登录组件与所需的服务相结合,只需直接导入即可。好处是它更容易理解,缺点是您将组件与其依赖关系耦合。