我一直在阅读多篇不同的文章,了解什么是同构应用程序,为什么这种类型的架构更好等等。但是对于这个术语的含义,我仍然有些不确定。
您如何定义“同构应用程序”是什么,而又不涉及太多细节?
最佳答案
最近,它们也被称为universal
。我不确定整个应用程序是否被称为同构/通用,但您肯定可以拥有通用的部分代码库。
同构/通用代码是在客户端(浏览器)和服务器(NodeJS)上运行的代码。由于它们都是 JavaScript,因此在以下情况下这是可能的:
- 您没有提及
window
、document
或任何其他仅限浏览器的方法 - 您没有提及
server
、fs
或任何或任何其他仅限 Node 的方法。 - 如果您确实需要在一些通用代码中执行上述操作,您应该将其包装在一个函数中,该函数要么在备用环境中模拟所需的方法,要么将其包装在条件中,这样应用程序就不会崩溃。
一个例子是 console.log
,它可以在 NodeJS 和任何浏览器中工作,以及现代浏览器中的大多数其他 es6 方法。
我使用构建工具(如 webpack)来帮助在单个文件中创建/导出函数,这样我们就有了一个像 client-app.js
这样的 bundle
包含在 HTML 文件中,并且是浏览器专用的 js。然后,服务器可能会开始使用 server-app.js
,这是仅限服务器的包。这两个包都可以使用大量相同的通用
源代码创建。
关于javascript - 什么是同构应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48008502/