所以,我最近一直在摆弄一些同构的 React + Flux,老实说,我发现一些概念相当混乱。我一直在研究有关如何构建同构应用程序的最佳实践,并正在寻求建议。
假设您正在创建一个 web 应用程序以及一个由相同 REST API 支持的移动应用程序。您是否将 REST API 与 webapp 捆绑在一起?我见过有人提倡捆绑并为 REST API 提供单独的代码库。
任何建议或建议阅读表示赞赏!
所以,我最近一直在摆弄一些同构的 React + Flux,老实说,我发现一些概念相当混乱。我一直在研究有关如何构建同构应用程序的最佳实践,并正在寻求建议。
假设您正在创建一个 web 应用程序以及一个由相同 REST API 支持的移动应用程序。您是否将 REST API 与 webapp 捆绑在一起?我见过有人提倡捆绑并为 REST API 提供单独的代码库。
任何建议或建议阅读表示赞赏!
Fluxible(至少从示例中)确实提倡使用应用程序内部的服务层直接从服务器调用它,并从客户端通过 xhr 调用它,而无需复制代码 https://github.com/gpbl/isomorphic500/blob/master/src/ app.js 这是我在构建同构应用程序时认真遵循的示例
这个想法很简单。假设您有 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。您可以克隆它并运行。
这是我的帖子,详细描述了该应用程序背后的所有想法。
让我们看看我能不能帮你。
请记住,同构 Javascript 非常新,很难为每个用例找到明确的定义。
根据定义,如果您创建一个 RESTful 应用程序,您应该明确区分服务器和客户端:
“统一的接口将客户端与服务器分开。这种关注点分离意味着,例如,客户端不关心数据存储,数据存储保留在每个服务器内部,因此提高了客户端代码的可移植性。服务器不关心用户界面或用户状态,使服务器更简单,更具可扩展性。服务器和客户端也可以替换和独立开发,只要它们之间的接口不改变。
关于同构应用程序,主要好处是:
这意味着您应该在用户第一次输入 URL 时将渲染的 React 组件从服务器交付到客户端。之后,您将像往常一样继续使用您的 REST API,在客户端上呈现所有内容。
如果可以,请分享有关您的案例的更多详细信息,这样会更容易获得帮助。
我不建议您在浏览器中捆绑 REST API,因为您仅限于在 API 中使用与浏览器兼容的模块,并且您将无法进行任何直接的数据库调用。
有一个库可以做到这一点,因此您可以以同构方式构建您的 API,并在客户端和服务器中重新使用它,而不会膨胀或破坏捆绑包。这是我们目前在大型单页应用程序中使用的。
它叫做异吗啡,你可以在这里找到它:https ://github.com/d-oliveros/isomorphine 。
免责声明:我是这个库的作者。