Flux 架构中的控制器视图是啥?

Posted

技术标签:

【中文标题】Flux 架构中的控制器视图是啥?【英文标题】:What is a controller view in the Flux Architecture?Flux 架构中的控制器视图是什么? 【发布时间】:2016-01-26 18:10:29 【问题描述】:

我看到 Flux 架构和 React 项目经常提到的术语。

据我了解,这是一种设计模式,但我在网上找不到很好的描述。

【问题讨论】:

【参考方案1】:

控制器视图也让我感到困惑。毫无疑问,旨在帮助解释反应设计。但它假设读者知道/熟悉 MVC 设计模式(我不知道,因此让我更加困惑)。

“控制器视图”旨在传达 React 组件实际上既是“控制器”又是“视图”,如 MVCModel-View-Controller 中定义的那样术语,其中:

模型是您保存、构建和管理数据的地方 View 是可见 UI 组件(html 和其他东西)的树 控制器通过从模型中获取数据并将其传递给视图,以及侦听视图中的用户输入并将其传递给模型,从而在视图和模型之间进行调解

在 react 中,您的组件不仅充当控制器,而且您还定义视图的结构(渲染中组件的结构 + 组件树的结构)。

如果您还使用带有 react 的通量:通量存储相当于 MVC 中的模型。

【讨论】:

【参考方案2】:

“控制器视图”的概念确实抵消了我一开始。

我能找到最好的“定义”:https://facebook.github.io/flux/docs/todo-list.html#listening-to-changes-with-a-controller-view

我们需要一个靠近组件层次结构顶部的 React 组件来监听 store 中的变化。在一个更大的应用程序中,我们会有更多这样的监听组件,也许页面的每个部分都有一个。在 Facebook 的广告创建工具中,我们有许多类似控制器的视图,每个视图都管理 UI 的特定部分。

我们的解释是,一旦您拥有大型组件层次结构,您就不希望每个组件都监听可能影响它的每个更改。相反,您选择一个***/父组件来侦听更改,然后通过道具将更改的值传播给其子级。这些孩子将根据道具更改的要求重新渲染。 该***组件成为层次结构的“控制器”。

【讨论】:

Here 的另一个定义:控制器确实存在于 Flux 应用程序中,但它们是控制器视图——视图通常位于从存储和检索数据的层次结构的顶部。将此数据传递给他们的孩子

以上是关于Flux 架构中的控制器视图是啥?的主要内容,如果未能解决你的问题,请参考以下文章

具有 Flux 架构的 ReactJS 生成大型 JS 文件,最佳实践是啥?

MVC架构是啥意思?

视图中的内容和视图控制器中的内容是啥?

模型与视图控制器通信的推荐方式是啥?

mvc是啥,有啥用

MFC 中的文档/视图架构基本上是模型/视图/控制器模式但没有控制器吗?