我一直在阅读有关异构应用程序是什么,为什么这种类型的架构更好等等的多篇不同文章。但对于这个术语的含义,我仍然有一些不确定性。
您如何定义“同构应用程序”是什么,而不需要过多细节?
最近,它们也被称为universal
。我不确定整个应用程序被称为同构/通用,但你肯定可以拥有通用的代码库部分。
同构/通用代码是在客户端(浏览器)和服务器(NodeJS)上运行的代码。因为它们都是JavaScript,所以如果:
window
,document
或任何其他仅限浏览器的方法server
,fs
或任何或任何其他节点方法。一个例子是console.log
,它可以在NodeJS和任何浏览器中工作,以及现代浏览器中的大多数其他es6方法。
我使用构建工具(如webpack)来帮助创建/导出单个文件中的函数,以便我们有一个bundle
,如client-app.js
,它包含在HTML文件中,并且只是浏览器js。然后,服务器可能会开始使用server-app.js
,它是仅服务器的捆绑包。两个bundle都可以使用很多相同的universal
源代码创建。