创建新类与使用export const之间的区别

建立:

  • BabelJS(ES2015,React,Stage-1)
  • Webpack
  • React / Redux

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,好像它在本地存在?

  1. 方法A:在构造函数中初始化状态的好处之一?

因此,基本上我不确定何时将哪个用于我的实用程序类,并且会感谢您的输入。

回答:

每次导入A都会有一个新实例吗?

不,模块仅评估一次。

B的好处之一是可以使用对象分解功能,然后使用method1就像它存在于本地一样吗?

是的,尽管它不被称为“解构”。它们被 命名为imports (或模块的 exports ),并且它们不嵌套并且对别名使用不同的语法。

A的优点之一是能够在构造函数中初始化状态吗?

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

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

export default new …模式都有效吗?

不,由于上述原因,这是一种反模式。给定该类在其他地方都没有使用,它与匿名类antipattern

非常相似。无论如何,导出多个命名的导出要比默认导出对象好得多。

以上是 创建新类与使用export const之间的区别 的全部内容, 来源链接: utcz.com/qa/430002.html

回到顶部