【问题标题】:Is it bad practise to import all functions from node modules?从节点模块导入所有功能是不好的做法吗?
【发布时间】:2021-10-29 14:47:55
【问题描述】:

我不确定以前是否有人问过这个问题,但我找不到答案,但我想问一下,从 node_module 导入 react 中的所有函数是否有区别@(我是假设相同的逻辑将适用于其他框架,如 angular,是的,我知道 react 不是一个框架,它是一个库)与只导入你要使用的函数(在这两种情况下我们只使用我们想要使用的函数)?

例如,我们可以全部导入并这样做

import * as FaIcons from "react-icons/fa";

<FaIcons.FaEnvelopeOpen />

或者像这样只导入我们需要的函数

import { FaEnvelopeOpen } from 'react-icons/fa';

<FaEnvelopeOpen /> 

我倾向于第一种方法,因为它使以后的编辑更容易,但这是不好的做法还是会降低性能?抱歉,如果这是一个显而易见的答案,我是编程新手,不确定。

【问题讨论】:

  • 取决于包,有些提供震动有些不提供(在这种情况下导入无关紧要)
  • 取决于包,文件大小是否巨大。如果您全部导入它们会打扰您。根据您想做的事情,只做特定的事情,因为其中一些或大多数是无用的。
  • @MedetTleukabiluly 谢谢!有没有一种简单的方法可以区分哪些包提供震动,哪些不提供?
  • @argonx 2 种方式:1 包自述文件应该说 supports tree shaking,2 阅读 webpack 抖动模式 webpack.js.org/guides/tree-shaking
  • @MedetTleukabiluly 谢谢你,这很有帮助

标签: reactjs node-modules


【解决方案1】:

是的。就进口而言,这通常被认为是不好的做法。最小化导入的模块可以大大提高性能。虽然您正在处理的模块的大小可能足够小,只会导致微小的性能差异,但处理像@material-ui/core 这样的更大的、动摇的代码库可以大幅扩大规模。如果您有兴趣最大限度地提高导入的性能,我还建议您考虑动态导入必要的代码库。

但是,如上所述,如果包支持抖动,那么这里的导入就会受到影响;否则,不会有明显的区别。

【讨论】:

  • 有道理,也谢谢你的建议
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-03
  • 1970-01-01
  • 1970-01-01
  • 2019-05-13
  • 2017-09-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多