5

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

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

任何建议或建议阅读表示赞赏!

4

4 回答 4

4

Fluxible(至少从示例中)确实提倡使用应用程序内部的服务层直接从服务器调用它,并从客户端通过 xhr 调用它,而无需复制代码 https://github.com/gpbl/isomorphic500/blob/master/src/ app.js 这是我在构建同构应用程序时认真遵循的示例

于 2015-06-19T09:28:39.043 回答
2

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

SPA (in browser) <====> Backend REST API

在同构的情况下,它是完全一样的,除了你也将在服务器上运行你的 SPA。

所以,它会像这样工作:

SPA (in browser) <====> Backend REST API
SPA (on server)  <====> Backend REST API

如果您有一个移动应用程序,那么它将是:

SPA (in browser) <====> Backend REST API
SPA (on server)  <====> Backend REST API
Mobile app       <====> Backend REST API

这是我们向社区开放的一个真正的同构生产应用程序 - https://github.com/WebbyLab/itsquiz-wall。您可以克隆它并运行。

这是我的帖子,详细描述了该应用程序背后的所有想法。

于 2016-10-01T21:38:29.383 回答
0

让我们看看我能不能帮你。

请记住,同构 Javascript 非常新,很难为每个用例找到明确的定义。

根据定义,如果您创建一个 RESTful 应用程序,您应该明确区分服务器和客户端:

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

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

  • 用户首次进入网站时没有空白页面(UX 积分)
  • 因此它是 SEO 友好的
  • 您可以在服务器/客户端之间共享一个逻辑(例如关于 React 组件)

这意味着您应该在用户第一次输入 URL 时将渲染的 React 组件从服务器交付到客户端。之后,您将像往常一样继续使用您的 REST API,在客户端上呈现所有内容。

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

于 2015-05-21T21:33:49.067 回答
0

我不建议您在浏览器中捆绑 REST API,因为您仅限于在 API 中使用与浏览器兼容的模块,并且您将无法进行任何直接的数据库调用。

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

它叫做异吗啡,你可以在这里找到它:https ://github.com/d-oliveros/isomorphine 。

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

于 2015-07-28T16:14:13.097 回答