Mvc管理上下文和可重用组件

时间:2015-05-17 17:40:49

标签: javascript reactjs hmvc reactjs-flux

我尝试使用分层路由器为Web App创建MVC架构。 目标是以清晰的模式管理所有业务逻辑和视图。

让我举一些例子:

  1. 路由索引名为
  2. 索引控制器调用;它有责任将视图插入页面。
  3. 现在的问题是:

    1. 如何管理所需的模型和集合或服务实例?他们必须存放在哪里?如果我将它们存储在控制器中,如何从外部资源访问它们?

    2. 如何管理所有没有专用路径的UI组件(如遍布登录覆盖的callble)及其业务逻辑和所需的对象实例?

    3. 我使用React with Flux模式。 我发现的一个解决方案是创建控制器而不将它们直接映射到路由。这样我们就可以将控制器用于路由处理程序和另一个控制器。 在这种情况下,我们如何才能从任何地方访问控制器?

      我知道这取决于使用案例,但我试图找到一个最佳实践,以便有一个明确的管理模式。

      提前致谢!

1 个答案:

答案 0 :(得分:0)

这是一个非常开放的问题,但我会尝试回答它。

  1. 在React中管理依赖项的方法是将它们作为props传递。通过将它们作为道具传递或传递它们作为道具管理的数据,接收组件不必知道它们来自何处。并且你尽可能地推动这种类型的决策。这样你最终将所有的线路集中在一个地方,这很好。如果您正在使用react-router,则必须将路由handler组件设置为仅获取依赖项的组件,并呈现另一个组件传递所需的依赖项。

    < / LI>
  2. 最明显的方法是将登录组件所需的依赖项传递给呈现登录组件的组件。它具有清晰和具体的优点,但缺点是你需要在所有地方传递这些依赖关系,并且很容易错过一些。 React中有一些名为context的东西,它允许组件树共享一个上下文而不必传递它。您可以在此处找到更多信息:https://www.tildedave.com/2014/11/15/introduction-to-contexts-in-react-js.html。另一种选择当然是将登录组件与其所需的服务相结合,只需直接导入即可。好处是它更容易理解,缺点是您将组件与其依赖关系耦合在一起。