在ES6中,我知道您可以导入命名导出,如:
import { foo } from 'bar'
这在Webpack等某些模块捆绑包中很有用 这样它就能清楚地知道在任何情况下使用的是什么。 我希望能够做到这一点,但保持名称间隔。 我试过了:
import { foo } as bar from 'bar' // syntax error
但这并不奏效。我知道我可以这样做:
import * as bar from 'bar'
要在命名空间中获取所有'bar'
个导出,
但我的理解是它的
最佳做法是仅导入您需要的内容,以便模块捆绑器可以有效地摇动树。
我只想这样做是为了提高可读性,所以在略读代码时 我知道我从哪个模块运行函数。我知道 我能做到这几乎同样的效果:
import { foo as bar_foo } from 'bar'
console.log(bar_foo)
或者将相同的想法转移到文件' bar':
// bar.js
const bar = { foo }
export bar_foo = bar.foo
export default bar
// other.js
import bar_foo from 'bar'
哪个类似但处理名称更改。它 只要你知道它意味着什么就好了。
如果这是不可能的,但有一个更好或被接受的约定来处理 问题也是一个很好的答案。
编辑:@loganfsmyth告诉我,ES6无论如何加载整个文件。 我意识到这种做法只会在像Webpack这样的模块捆绑器中有任何价值,可以删除任何未使用的代码。 我编辑了这篇文章,指出我指的是使用它 Webpack或类似的模块捆绑器中的模式。