什么是同构应用?

时间:2017-12-28 13:36:17

标签: javascript node.js reactjs isomorphic-javascript

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

你如何定义什么"同构应用"是的,没有太多细节?

1 个答案:

答案 0 :(得分:5)

最近,它们也被称为universal。我不确定整个app被称为isomorphic / universal,但你肯定可以拥有通用的代码库部分。

同构/通用代码是在客户端(浏览器)和服务器(NodeJS)上运行的代码。因为它们都是JavaScript,所以如果出现这种情况:

  1. 您未提及windowdocument或任何其他仅限浏览器的方法
  2. 您未提及serverfs或任何或任何其他仅限节点的方法。
  3. 如果您确实需要在一些通用的代码中执行上述操作,则应将其包装在一个函数中,该函数在备用环境中模拟所需的方法或将其包装在条件中,以便应用程序不会崩溃。
  4. 一个例子是console.log,它可以在NodeJS和任何浏览器中使用,以及现代浏览器中的大多数其他es6方法。

    我使用构建工具(如webpack)来帮助在单个文件中创建/导出函数,以便我们有一个bundle类似client-app.js,它包含在HTML文件中,并且只是浏览器JS。然后,服务器可能会开始使用server-app.js,这是仅限服务器的捆绑包。可以使用大量相同的universal源代码创建这两个包。