首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模型(如骨干模型或符号模型)是否真的需要与反应?

模型(如骨干模型或符号模型)是否真的需要与反应?
EN

Stack Overflow用户
提问于 2015-05-28 19:54:26
回答 2查看 608关注 0票数 0

我来自于脊梁/ Marionette背景,并且已经工作了几个星期了。很多人说,你应该和脊骨或Ampersand.js这样的东西成对,在经典的MVC模型中使用React作为V和主干/符号作为"M“和"C”。

然而,我越多地思考这个问题,我就越想知道这是否真的有必要。在主干/符号中,模型的主要目的是跟踪状态,并在模型状态更改时“告诉”视图更新。当然,在React中,视图通过视图的propsstate来处理这一责任,这似乎使完整的主干/符号模型变得不必要和重复。

我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-28 23:27:06

首先,让我们用MVC术语定义模型。下面是来自维基百科的文章。

..。模型,捕捉应用程序的行为.独立于用户界面。 该模型直接管理应用程序的数据、逻辑和规则。视图可以是信息的任何输出表示形式。同一信息的多重视图是可能的. 第三部分,控制器接受输入并将其转换为模型或视图的命令。

在React中,您将不可避免地创建View+Controller组件;就像角度、剔除和大多数其他JS应用程序框架一样。

为什么是模特?

虽然您也可以将模型扔到这个级别的组件中,但在实践中却不太好。您有诸如过度获取(和其他优化限制)、困难测试、不分离关注点等问题,在您从精神上将控制器行为与模型行为分离之前,很难看出组件是什么。

所以,脊背?

如果你有这段代码,并且你想让它变得更好,你最终会得到模型。它可以是主干模型,也可以是流量存储,也可以是具有调用$.ajax函数的简单对象。

你使用哪种型号没有什么区别,但你确实需要它们。

为所有的事物建模

哇!在那儿等着。模特可不是免费的。每次使用模型时,您都要跨越抽象边界,离开组件域。在声明式系统中,这是一个命令式操作,因此我们需要确保事情是可预测的。

你的大部分组件都很蠢。道具,也许还有一些UI状态。您有控制器组件(“查看控制器”),它们100%绑定到模型层,其余组件(理想情况下)绑定到模型层。

在最初的问题中,您所描述的是一个小应用程序,其中有一个控制器组件。但是,随着它们的增长,您需要在它们之间进行协调(例如,不要获取同一个用户两次)。您可以将这些控制器嵌套在其他控制器中,以构建应用程序。模型就是胶水。

票数 2
EN

Stack Overflow用户

发布于 2015-05-28 20:09:19

您可以将function组件看作是一个功能上的纯函数,它以道具和状态作为输入参数。它的render()方法的工作是根据道具和状态生成并返回一个(虚拟) DOM元素或JSX (语法糖)。骨干仍然是“拥有”的模式。当主干模型通过用户输入或套接字事件或其他任何东西发生变化时,可以调用setState() (在这里添加一些魔法),这会导致响应组件再次呈现。重点是React组件不保持状态。这并不是说必须使用脊骨和React,因为React只是一个呈现库。

Update:在https://github.com/reactjs/react-future中,呈现()显然应该被视为一个纯函数。它以道具和状态作为输入参数,其工作是生成一个JXS,因此不需要引用this关键字。

https://github.com/reactjs/react-future/blob/master/01%20-%20Core/01%20-%20Classes.js

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30515933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档