【问题标题】:Performance of ES6 importsES6 导入的性能
【发布时间】:2020-03-23 06:22:44
【问题描述】:

React Bootstrap docs 中,建议从单个分发文件而不是从较大的分发文件单独导入模块。

import Button from 'react-bootstrap/Button';

// or less ideally
import { Button } from 'react-bootstrap';

为什么第二种方法不太理想?

【问题讨论】:

    标签: javascript ecmascript-6 import


    【解决方案1】:

    正如那个链接所说:

    您应该导入单个组件,例如:react-bootstrap/Button,而不是整个库。这样做只会引入您使用的特定组件,这可以显着减少您最终发送给客户端的代码量。

    如果您从react-bootstrap 导入,客户端必须下载react-bootstrap 中的所有内容。这最终可能会成为相当大的代码块。相反,如果您从react-bootstrap/Button 导入,则需要下载的全部是按钮 - 没有任何多余的内容。

    比较文件:

    https://github.com/react-bootstrap/react-bootstrap/blob/master/src/Button.js

    https://github.com/react-bootstrap/react-bootstrap/blob/master/src/index.js

    如您所见,从 Button 导入需要一些导入:

    import classNames from 'classnames';
    import React from 'react';
    import PropTypes from 'prop-types';
    
    import { useBootstrapPrefix } from './ThemeProvider';
    import SafeAnchor from './SafeAnchor';
    

    但是从index.js 导入需要非常大量的导入,准确地说是77

    export Accordion from './Accordion';
    export AccordionToggle, { useAccordionToggle } from './AccordionToggle';
    export AccordionCollapse from './AccordionCollapse';
    export Alert from './Alert';
    export Badge from './Badge';
    // and 72 more
    

    如果您从index 导入而不是从Button 导入,那么您正在下载大量不需要的代码,没有任何理由。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-07
      • 2017-03-09
      • 1970-01-01
      • 2021-01-24
      • 2016-08-31
      • 2017-12-10
      • 2017-11-26
      • 2017-08-13
      相关资源
      最近更新 更多