所以,我最近一直是小提琴:最近有一些同构的React + Flux并且发现一些概念让人很困惑。我一直在研究如何构建同构应用程序的最佳实践,并正在寻求建议。
假设您正在创建一个Web应用程序以及由相同REST API支持的移动应用程序。您是否将REST API与webapp捆绑在一起?我见过人们提倡捆绑并为REST API提供单独的代码库。
感谢任何建议或建议阅读!
答案 0 :(得分:4)
Fluxible(至少来自示例)确实提倡使用应用程序内部的服务层直接从服务器调用它,并通过客户端的xhr调用它而无需复制代码 https://github.com/gpbl/isomorphic500/blob/master/src/app.js 这是我在构建同构应用程序时虔诚地遵循的一个例子
答案 1 :(得分:1)
这个想法非常简单。让我们假设您有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。你可以克隆它并运行。
Here is my post详细介绍了应用背后的所有想法。
答案 2 :(得分:0)
让我们看看我是否可以帮助你。
请记住,Isomorphic Javascript很新,很难找到每个用例的明确定义。
根据定义,如果您创建RESTful应用程序,则应该在服务器和客户端之间进行明确分离:
“统一的界面将客户端与服务器分开。这种分离 关注意味着,例如,客户不关心 数据存储,它保留在每个服务器的内部,以便 客户端代码的可移植性得到改善。服务器不关心 用户界面或用户状态,以便服务器可以更简单 更具可扩展性服务器和客户端也可以被替换和开发 只要它们之间的界面没有改变就可以独立地进行。“
关于 isomorphic 应用程序,主要好处是:
这意味着您应该在用户首次输入网址时,将呈现的React组件从服务器传送到客户端。之后,您将像往常一样继续使用REST API,在客户端上呈现所有内容。
如果可以,请分享有关您案件的更多详情,这将更容易帮助。
答案 3 :(得分:0)
I wouldn't recommend you to bundle the REST API in the browser, as you are limited to using browser-compatible modules in your API, and you won't be able to make any direct database calls.
There's a library that makes it so you can build your APIs in an isomorphic fashion, and re-use it in the client and server without bloating or breaking the bundle. This is what we're currently using in a big single-page application.
It's called Isomorphine, and you can find it here: https://github.com/d-oliveros/isomorphine.
Disclaimer: I'm the author of this library.