这个问题看起来与“require(x)和import x之间的区别”(链接)相似,但实际上是不同的。
我最近注意到了
乍一看,我认为使用
到目前为止,我总是使用
也许使用
我最近注意到了
await import
的用法,在Next.js项目中,例如:
https://github.com/zeit/next.js/blob/canary/examples/with-apollo/lib/apollo.js#L134。if (ssr && AppTree) {
// Import `@apollo/react-ssr` dynamically.
// We don't want to have this in our client bundle.
const { getDataFromTree } = await import('@apollo/react-ssr')
}
乍一看,我认为使用
await import('@apollo/react-ssr')
允许在源代码中条件地使用import
,而不是在顶层导入@apollo/react-ssr
模块。其目标是减少生成的浏览器捆绑包(浏览器将不包含@apollo/react-ssr
包)。到目前为止,我总是使用
const reactSSR = require('@apollo/react-ssr')
有条件地导入软件包。我想知道两种方法之间有什么区别。也许使用
await import('@apollo/react-ssr')
更好,因为它允许树摇?与require
相比,使用它的任何“缺点”吗?
import
而不是require
有什么不同。使用require
还允许使用try/catch。 - Vadorequest