Guy*_*Guy 13 commonjs ecmascript-6 reactjs babeljs
建立:
CommonJS和ES6的新功能.我知道对象实例和方法的静态容器之间的区别,但我不确定它们在分离到模块时的行为方式.所以我想知道返回一个实例之间的区别是什么(这个模式是否有效?):
// StateParser.js
class StateParser {
constructor() {
}
method1() {
...
}
}
export default new StateParser()
Run Code Online (Sandbox Code Playgroud)
并导出const方法:
// StateParser.js
let state = {
}
export const method1 = () => { ... }
Run Code Online (Sandbox Code Playgroud)
方法B:使用对象解构的能力之一是:
import { method1 } from '../utils/StateParser.js';
Run Code Online (Sandbox Code Playgroud)
然后使用method1,就好像它存在于本地?
方法A:在构造函数中初始化状态的能力有哪些好处?
所以基本上我不确定何时使用哪个实用程序类,并希望您的输入.
Ber*_*rgi 20
每次导入A时都会有新的实例吗?
不,模块只评估一次.
B的好处之一是使用对象解构然后使用method1就好像它存在于本地一样?
是的,虽然它不被称为"解构".它们被命名为import(或模块的命名导出),并且它们不嵌套并使用不同的语法进行别名.
A的一个好处是能否在构造函数中初始化状态?
不可以.您也可以直接在模块范围内初始化模块状态,您不需要构造函数.
但是,是的,如果你在实例中有状态,那么使用一个可以多次实例化的类是个好主意.为此,您需要导出类本身,当然不是实例.
该
export default new …模式是否有效?
不,由于上述原因,它是反模式.鉴于该类在其他任何地方都没有使用,它与匿名类反模式非常相似.无论如何,导出多个命名导出要比默认导出对象好得多.
| 归档时间: |
|
| 查看次数: |
10328 次 |
| 最近记录: |