如何为优化构建执行 ES6 导入?

How to do ES6 imports for optimized builds?

我应该使用以下哪个:

import { Button } from 'react-bootstrap';

import Button from 'react-bootstrap/Button';

前者的优点是可以为组件使用正确的名称,所以我不明白为什么我应该使用后一种方法来导入 ES6。

不是ES6的问题。这两个语句做了两件不同的事情。

import Button from 'react-bootstrap/Button';

这将加载文件 react-bootstrap/Button.js 并 returns 其默认导出。

import { Button } from 'react-bootstrap';

这将加载文件 react-bootstrap/index.js,并 returns Button 导出。 index.jsButton.js 导入默认导出,并在这一行将其导出为 Button

export { default as Button } from './Button';

如果没有这一行,您将无法使用第二种形式。

这种情况下的区别在于包的排列方式。

import { Button } from 'react-bootstrap';

这个实际上加载了整个 bootstrap 包 - 但它只将 Button 部分导入到您的模块中。 {Button} 部分可以被认为只解构大对象的一个​​ 属性。

import Button from 'react-bootstrap/Button';

这个只加载 Button 部分,它不需要做任何解构 - 因为,加载的只是 Button 部分。

第二种方法更好 - 因为,它只需要加载您明确指定的代码。