Export of a class instance in Javascript(在Javascript中导出类实例)
问题描述
我正在查看this代码,其中类实例以一种有点奇怪的方式导出。
提供了一个剪辑。导出方式如下:
class RegisterStore {
@observable success = false
@observable failure = false
@observable errors = {}
...
}
export default new RegisterStore()
export { RegisterStore }
在index.js中导入如下:
import registerStore from './stores/RegisterStore'
...
const stores = {
registerStore
...
}
为什么第一个代码的末尾有两个导出?是
export default new RegisterStore()
和
const NewRegisterStore = new RegisterStore(); export default NewRegisterStore
等效?
推荐答案
否export default new RegisterStore() and export { RegisterStore }
不相等。在export { RegisterStore }
中导出类作为导出对象的一部分,而在export default new RegisterStore()
中导出类的实例。
更远。export default new RegisterStore()
应该足以正常工作。除非您不想从同一文件导入多个变量,否则再次导出行是无用的。在这种情况下,它将如下所示:
export new RegisterStore();
export const anotherVariable = "TESTTEST";
并类似于导入:
import {RegisterStore, anotherVariable} from './stores/RegisterStore';
对于您的上一个查询,请执行以下操作:
否
export default new RegisterStore() AND
export default const RegisterStore = new RegisterStore() are equivalent?
也不等价。
首先,export default const RegisterStore = new RegisterStore()
引发错误,因为RegisterStore
已声明为class,并且您再次使用const声明它。
第二:
export default const NewRegisterStore = new RegisterStore()
也是错误的,因为默认导出必须作为匿名导出,或者在导出之前必须首先声明变量。
对于您的示例,应如下所示:
let NewRegisterStore; export default NewRegisterStore = new RegisterStore();
所以:
export default new RegisterStore() AND
let NewRegisterStore; export default NewRegisterStore = new RegisterStore(); are equivalent
请阅读有关"命名导出"和"导出默认值"的详细信息here
这篇关于在Javascript中导出类实例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在Javascript中导出类实例
基础教程推荐
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01
- 在for循环中使用setTimeout 2022-01-01
- 动态更新多个选择框 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01