Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 同构反应&x2B;通量+;RESTAPI_Reactjs_Reactjs Flux_Flux_Isomorphic Javascript_Fluxible - Fatal编程技术网

Reactjs 同构反应&x2B;通量+;RESTAPI

Reactjs 同构反应&x2B;通量+;RESTAPI,reactjs,reactjs-flux,flux,isomorphic-javascript,fluxible,Reactjs,Reactjs Flux,Flux,Isomorphic Javascript,Fluxible,所以,我最近一直在摆弄一些同构的React+Flux,老实说,我发现一些概念相当混乱。我一直在研究如何构造同构应用程序的最佳实践,并正在寻求建议 假设您正在创建一个webapp以及一个由相同的restapi支持的移动应用程序。您是否将RESTAPI与webapp捆绑在一起?我见过有人提倡捆绑和为RESTAPI提供单独的代码库 任何建议或阅读建议都将不胜感激 看看我能不能帮你 请记住,同构Javascript是非常新的,很难为每个用例找到清晰的定义 根据定义,如果创建RESTful应用程序,则服务

所以,我最近一直在摆弄一些同构的React+Flux,老实说,我发现一些概念相当混乱。我一直在研究如何构造同构应用程序的最佳实践,并正在寻求建议

假设您正在创建一个webapp以及一个由相同的restapi支持的移动应用程序。您是否将RESTAPI与webapp捆绑在一起?我见过有人提倡捆绑和为RESTAPI提供单独的代码库


任何建议或阅读建议都将不胜感激

看看我能不能帮你

请记住,同构Javascript是非常新的,很难为每个用例找到清晰的定义

根据定义,如果创建RESTful应用程序,则服务器和客户端之间应该有明确的分离:

“一个统一的接口将客户端和服务器分开。这种分离 关注的范围意味着,例如,客户不关心 数据存储,保留在每个服务器的内部,以便 客户端代码的可移植性得到了提高。服务器不关心 用户界面或用户状态,因此服务器可以更简单 更具可扩展性。服务器和客户端也可以更换和开发 独立地,只要它们之间的接口没有改变。”

关于同构应用程序,主要好处是:

  • 用户首次进入站点时没有空白页面(用户体验点数)
  • 因此,它是搜索引擎优化友好
  • 您可以在服务器/客户端之间共享一个逻辑(例如关于React组件)
这意味着您应该在用户第一次输入URL时将呈现的React组件从服务器传递到客户端。之后,您将继续像往常一样使用RESTAPI,在客户端上呈现所有内容

如果可以,请分享更多关于您的案例的详细信息,这样会更容易获得帮助。

Fluxible(至少从示例中)主张在应用程序内部使用服务层,直接从服务器调用服务层,并通过客户机的xhr调用服务层,而无需重复代码
这是我在构建同构应用程序时遵循的一个示例,我不建议您在浏览器中捆绑REST API,因为您仅限于在API中使用与浏览器兼容的模块,并且无法进行任何直接的数据库调用

有一个库可以让您以同构的方式构建API,并在客户端和服务器中重用它,而不会膨胀或破坏捆绑包。这就是我们目前在一个大的单页应用程序中使用的内容

它叫异吗啡,你可以在这里找到:


免责声明:我是这个库的作者。

这个想法很简单。假设您有SPA和一个提供RESTAPI的后端

SPA (in browser) <====> Backend REST API
SPA(浏览器中)后端REST API
在同构的情况下,它是完全相同的,只是您也将在服务器上运行SPA

因此,它的工作原理如下:

SPA (in browser) <====> Backend REST API
SPA (on server)  <====> Backend REST API
SPA(浏览器中)后端REST API
SPA(服务器上)后端REST API
如果您有一个移动应用程序,那么它将是:

SPA (in browser) <====> Backend REST API
SPA (on server)  <====> Backend REST API
Mobile app       <====> Backend REST API
SPA(浏览器中)后端REST API
SPA(服务器上)后端REST API
移动应用后端RESTAPI
这是我们向社区开放的一个真正的同构生产应用程序-。你可以克隆它然后运行


详细描述了应用背后的所有想法

很好的自我推销:)