什么是同构应用?

问题描述 投票:4回答:1

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

您如何定义“同构应用程序”是什么,而不需要过多细节?

javascript node.js reactjs isomorphic-javascript
1个回答
5
投票

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

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

  1. 你没有提到windowdocument或任何其他仅限浏览器的方法
  2. 你没有提到serverfs或任何或任何其他节点方法。
  3. 如果您确实需要在一些通用的代码中执行上述操作,则应将其包装在一个函数中,该函数在备用环境中模拟所需的方法或将其包装在条件中,以便应用程序不会崩溃。

一个例子是console.log,它可以在NodeJS和任何浏览器中工作,以及现代浏览器中的大多数其他es6方法。

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

© www.soinside.com 2019 - 2024. All rights reserved.