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