gpt4 book ai didi

reactjs - 创建新类与使用导出 const 之间的差异

转载 作者:行者123 更新时间:2023-12-03 13:16:22 24 4
gpt4 key购买 nike

设置:

  • BabelJS(es2015,react,第 1 阶段)
  • 网络包
  • react /还原

CommonJS 和 ES6 的新功能。我知道对象实例和方法的静态容器之间的区别,但我不确定它们在分离到模块时的行为如何。所以我想知道返回实例之间有什么区别(这个模式是否有效?):

// StateParser.js

class StateParser {
constructor() {
}

method1() {
...
}

}

export default new StateParser()

并导出 const 方法:

// StateParser.js

let state = {
}

export const method1 = () => { ... }
  1. 方法A:每次导入都会有一个新实例吗?
  2. 方法 B:使用对象解构的好处之一:

    import { method1 } from '../utils/StateParser.js';

    然后像本地存在一样使用method1?

  3. 方法 A:好处之一是能够在构造函数中初始化状态吗?

所以基本上我不确定何时为我的实用程序类使用哪个,并且非常感谢您的意见。

最佳答案

Would there be a new instance every time I import A?

不,模块仅评估一次。

Is one of the benefits of B the ability to use object destructuring and then use method1 as if it existed locally?

是的,虽然它不叫“解构”。它们是模块的命名导入(或命名导出),并且它们不嵌套并使用不同的别名语法。

Is one of the benefits of A the ability to initialize state in the constructor?

没有。您也可以直接在模块范围内初始化模块状态,不需要为此使用构造函数。

但是,是的,如果实例中有状态,那么使用可以多次实例化的类是一个好主意。为此,您当然需要导出类本身,而不是实例。

Is the export default new … pattern valid at all?

不,由于上述原因,它是一种反模式。鉴于该类未在其他地方使用,它与 anonymous class 非常相似反模式。并导出多个命名导出 is much better无论如何都比默认导出对象要好。

关于reactjs - 创建新类与使用导出 const 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39076190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com