Model view controller React JS:后端web应用程序框架

Model view controller React JS:后端web应用程序框架,model-view-controller,web-applications,frameworks,reactjs,reactjs-flux,Model View Controller,Web Applications,Frameworks,Reactjs,Reactjs Flux,React的网站声明: 很多人在MVC中使用React作为V 由此,我推断React在MVC中不扮演“M”和“C”角色 如果这是正确的,则意味着不能仅使用React JS构建整个web应用程序 那怎么办 React是否需要一个完整的MVC后端框架,如Rails或Laravel 在Rails或Laravel等框架将被设置为web API的后端,React是否可以简单地提取数据 React不需要这些,并且以一种完全不同的方式工作(换句话说:我是否完全没有抓住要点) MVC只是一个用于构建应用程序中

React的网站声明:

很多人在MVC中使用React作为V

由此,我推断React在MVC中不扮演“M”和“C”角色

如果这是正确的,则意味着不能仅使用React JS构建整个web应用程序

那怎么办

  • React是否需要一个完整的MVC后端框架,如Rails或Laravel
  • 在Rails或Laravel等框架将被设置为web API的后端,React是否可以简单地提取数据
  • React不需要这些,并且以一种完全不同的方式工作(换句话说:我是否完全没有抓住要点)

MVC只是一个用于构建应用程序中数据流的术语。 构建应用程序不需要MVC,即使它可能会有所帮助

React所做的是,它专门构建孤立的组件——数据在其中单向流动(冯·诺依曼计算模型)

这非常好,因为您可以构建一个应用程序,前提是当数据发生更改时,所有内容都会重新提交,从而避免了难以读取的“双向绑定”。 问题是,当一些次要数据被更改时,重新渲染每个视图是非常低效的,但是“影子DOM”优化了这个过程,并生成了高效的重新渲染器

但React并不关心从何处获取数据。您可以使用nodejs/php/ruby或任何您想要的东西构建后端。如何在前端和后端之间通信和发送数据也取决于您。您可以使用jquery/socketio/superagent或任何您想要的工具

您还可以将React与任何其他框架结合起来,或者干脆跳过所有框架,直接从React组件获取数据

React的创建者Facebook有自己的方式或组织项目,称为flux,它与React配合得很好(即使不需要)。
MVC只是一个术语,用于构建应用程序中的数据流。 构建应用程序不需要MVC,即使它可能会有所帮助

React所做的是,它专门构建孤立的组件——数据在其中单向流动(冯·诺依曼计算模型)

这非常好,因为您可以构建一个应用程序,前提是当数据发生更改时,所有内容都会重新提交,从而避免了难以读取的“双向绑定”。 问题是,当一些次要数据被更改时,重新渲染每个视图是非常低效的,但是“影子DOM”优化了这个过程,并生成了高效的重新渲染器

但React并不关心从何处获取数据。您可以使用nodejs/php/ruby或任何您想要的东西构建后端。如何在前端和后端之间通信和发送数据也取决于您。您可以使用jquery/socketio/superagent或任何您想要的工具

您还可以将React与任何其他框架结合起来,或者干脆跳过所有框架,直接从React组件获取数据

React的创建者Facebook有自己的方式或组织项目,称为flux,它与React配合得很好(即使不需要)。

谢谢,这很清楚,很有道理。我还想知道Facebook是否提倡一种特定的后端解决方案,而不是另一种,但找不到答案。从你所说的,他们没有?他们不主张任何具体的解决方案,而且他们可能永远不会。他们使用flux作为MVC的替代品,因为它对他们很有效。然而,您的用例和挑战可能与facebook不同。因此,您应该使用一个后端解决方案和一个您觉得舒服的前端设计模式。不过,如果您对facebooks后端解决方案的想法感兴趣,那么他们确实有一些有趣的项目正在进行中,比如Relay()。谢谢,这非常清楚,而且很有意义。我还想知道Facebook是否提倡一种特定的后端解决方案,而不是另一种,但找不到答案。从你所说的,他们没有?他们不主张任何具体的解决方案,而且他们可能永远不会。他们使用flux作为MVC的替代品,因为它对他们很有效。然而,您的用例和挑战可能与facebook不同。因此,您应该使用一个后端解决方案和一个您觉得舒服的前端设计模式。然而,如果您对facebooks后端解决方案的想法感兴趣,那么他们确实有一些有趣的项目正在进行中,比如Relay()。