node.js - react : Importing modules with object destructuring, 还是单独 react ?

标签 node.js reactjs performance npm material-ui

在 React 中,某些包允许您使用单独的赋值导入组件:从“@material-ui/core/Card”导入 Card,或通过对象解构:import { Card } 来自“@material-ui/core”

我在博客中读到,如果您的环境没有适当的树摇动功能,则使用对象解构语法可能会产生性能影响。结果是 @material-ui/core每个组件都被导入,而不仅仅是您想要的组件。

在什么情况下使用对象解构导入会导致应用程序性能下降以及影响有多严重?另外,在一个拥有所有功能的环境中,比如默认的 create-react-app 配置,使用其中一个会产生什么区别吗?

最佳答案

通常不鼓励依赖包内部结构,但它是officially valid在 Material UI 中:

import Card from '@material-ui/core/Card';

为了不依赖于此并保持导入更短,可以使用顶级导出

import { Card } from "@material-ui/core"

两者可以互换,只要设置支持树摇动。如果可以对未使用的顶级导出进行树摇动,则最好选择第二个选项。否则,第一个选项更可取,它保证未使用的包导入不会包含在 bundle 中。

create-react-app 使用支持 tree-shaking 的 Webpack 配置,可以从第二个选项中受益。

关于node.js - react : Importing modules with object destructuring, 还是单独 react ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54894256/

相关文章:

javascript - 在 AWS Lambda 中使用 Async/Await 写入 S3 存储桶

node.js - 为什么 NodeJS 需要异步编程?

javascript - React 功能组件不会随着值的改变而改变

android - Android Profile GPU渲染中的红色和黄色单杠是什么意思

sql - MySQL慢查询分析与索引

node.js - 在 Node.js 中记录每个请求

javascript - 使用 Babel 编译具有依赖关系的 javascript

reactjs - 刷新 Promise 队列?

javascript - pondjs安装后无法识别

javascript - 在隐藏元素之前我应该​​检查可见性吗?