ReactJS是否重用导入的包?

时间:2017-12-05 16:20:13

标签: javascript reactjs

ReactJS是否重用导入的包?

假设我有一个名为DisplayItems.js和EditItem.js的文件。它们都导入App.js.

如果我在DisplayItem.js文件(import axios from 'axios';)的顶部导入一个包(比如axios),并且我也在我的EditItem.js文件中导入它,我的应用程序是否增长了13kb或26kb(假设axios是13kb)?

2 个答案:

答案 0 :(得分:7)

此行为不是由React控制,而是由任何构建工具编译并将import语句捆绑到浏览器的JavaScript文件中。

Create React App模板目前使用Webpack作为其构建工具。 Webpack避免重复多次导入的代码;它只写一次定义。如果您为React应用程序使用不同的项目设置,则您的项目可能会使用不同的构建工具。

答案 1 :(得分:0)

在回应jhpratt时,我确实想过自己测试一下,但我知道这需要一些时间(约34分钟)。

这是测试结果。

导入jQuery

2742120(控件) - 使用jquery导入一次

2742353 - 使用jquery导入两次(233字节差异,.2kb)

2741887 - 未导入jquery(233字节差异,.2kb)

导入modal-vanilla

2742120(对照) - 模态香草一次导入

2742406 - 模态 - 香草导入两次(差别为286字节,.3kb)

2712501 - 未导入模态 - 香草(29386字节差异,29.3kb)

我不确定jQuery会发生什么(也许我在项目的其他地方添加了它?),但它确实看起来像是重用了包(至少在这个例子中)。

万一有人想知道,我正在使用Laravel的React设置。