如果我想在多个地方导入 Singleton 类,如何制作它?
我最终得到了这样的结果,但每次导入时我都会导出一个 new() 实例(至少我是这么认为的)。
class RenderToRootAPI {
renderToRootComponent = null
setRenderComponent = ref => this.renderToRootComponent = ref
setInstance = instance => {
console.warn('setting instance')
this.renderToRootComponent.setInstance(instance)
}
deleteInstance = () => this.renderToRootComponent.deleteInstance
}
export default new RenderToRootAPI()
最佳答案
您所编写的将导出一个单例。导入多少次并不重要。
如果你像这样写作为例子,可能看起来更清楚一点:
class RenderToRootAPI {
renderToRootComponent = null
setRenderComponent = ref => this.renderToRootComponent = ref
setInstance = instance => {
console.warn('setting instance')
this.renderToRootComponent.setInstance(instance)
}
deleteInstance = () => this.renderToRootComponent.deleteInstance
}
const renderToRootAPI = new RenderToRootAPI();
export default renderToRootAPI;
该类甚至没有导出,单个导出的实例将在导入它的所有模块中使用。
关于javascript - 当我从多个地方导入它时如何创建单例类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51539968/