【发布时间】:2016-07-03 15:29:37
【问题描述】:
我最近阅读了 Material-UI 的文档:
请注意,在上面的示例中,我们使用了:
import RaisedButton from 'material-ui/RaisedButton'而不是
import {RaisedButton} from 'material-ui'这将使您的构建过程更快,您的构建输出更小。
我以前以为是一模一样的,但实际上,这意味着第二行就像:
import materialUI from 'material-ui'
const {RaisedButton} = materialUI
它会产生完全相同的捆绑包,对吧?
我做了一些测试,比较包大小使用不同的导入组合和 2 个文件:
index.js:
import RaisedButton from 'material-ui/RaisedButton'
// or import {RaisedButton} from 'material-ui'
import file from './otherFile.js'
console.log(RaisedButton)
console.log(file)
otherFile.js
import RaisedButton from 'material-ui/RaisedButton'
// or import {RaisedButton} from 'material-ui'
export default RaisedButton
结果完全符合预期,仅使用 import RaisedButton from 'material-ui/RaisedButton' 捆绑包将类似于 24k LoC(material-ui 加载 React 依赖项)。使用import {RaisedButton} from 'material-ui',在一个或两个文件中,捆绑包将类似于57k LoC。
我的问题主要是关于性能和最佳实践,使用少量 Material-UI 我应该始终导入 from 'material-ui/ComponentName,但如果我在更大的项目中使用大量 Material-UI 组件,它不会影响如果我使用import {Comp1, Comp2, Comp3} from 'material-ui',捆绑包的大小会只在捆绑包中导入一次?
【问题讨论】:
标签: javascript performance module webpack babeljs