什么是同构应用?

Edu*_*ard 4 javascript node.js reactjs isomorphic-javascript

我一直在阅读多篇有关同构应用程序,为什么这种类型的体系结构更好的文章,等等。但是对于该术语的含义我仍然不确定。

您将如何定义“同构应用程序”,而不必过多地关注细节?

pet*_*and 6

最近,它们也被称为universal。我不确定整个应用程序是同构的还是通用的,但您当然可以拥有通用代码部分。

同构/通用代码是在客户端(浏览器)和服务器(NodeJS)上运行的代码。由于它们都是JavaScript,因此在以下情况下可以实现以下目的:

  1. 你不提windowdocument或任何其它只通过浏览器方式
  2. 你不提serverfs或任何或任何其他唯一节点的方法。
  3. 如果确实需要在通用的某些代码中执行上述操作,则应将其包装在一个函数中,该函数可以在备用环境中模拟所需的方法,也可以将其包装在条件语句中,以使应用程序不会崩溃。

一个示例console.log将在NodeJS和任何浏览器中以及现代浏览器中的大多数其他es6方法中运行。

然后,我使用构建工具(例如webpack)来帮助在单个文件中创建/导出函数,这样我们就拥有了一个bundle类似的东西client-app.js,它包含在HTML文件中,并且是浏览器中唯一的js。然后,服务器可能开始使用server-app.js哪个是仅服务器的捆绑软件。可以使用很多相同的universal源代码创建两个捆绑软件。

  • 我想,这回答了我的问题。谢谢你,先生! (2认同)