首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >wirejs -每个依赖组件的新组件实例

wirejs -每个依赖组件的新组件实例
EN

Stack Overflow用户
提问于 2014-01-21 17:55:52
回答 1查看 193关注 0票数 4

第一:我是新来的线人,很有可能我错过了一些文档上的东西

对于常规组件声明,例如:

代码语言:javascript
运行
复制
'Bnaya/App/TrackingService': {
    create: {
        module: 'Bnaya/App/TrackingService',
        args: []
    }
}

所有使用$ref依赖于该组件的组件都将得到相同的实例,因此连线也是一种单例机制(在大多数情况下对我都有好处)。

在某些情况下,我希望每个依赖者使用相同的组件配置获得自己的组件实例。

代码语言:javascript
运行
复制
'Bnaya/App/TrackingService': {
    create: {
        module: 'Bnaya/App/TrackingService',
        args: [],
        notASingleton: true
    }
}

我知道如何使用多个组件名称或实例的内联创建获得类似的结果,但这是我想要避免的。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-21 18:59:11

有几种方法可以在wire.js中创建多个组件实例。根据您的需要,您可以看到哪一个可能为您工作。

首先,您可以使用create工厂从原型中生成新的实例。当您给create一个函数或构造函数模块时,它将调用它们。但是,如果您给create一个现有对象,它将使用create生成一个新实例,然后您可以像往常一样进一步配置该实例(例如使用propertiesinit、建议等)。请记住,它的工作方式与Object.create完全一样,因此原型属性将被共享。

其次,您可以使用 factory来实现您想要的效果。你只需要在它自己的电线规格包非单例。下面是一个简单的例子:

代码语言:javascript
运行
复制
thingThatNeedsATrackingService: {
    create: 'my/ThingThatNeedsATrackingService',
    properties: {
        foo: { wire: 'my/trackingServiceSpec' }
    }
},

otherThingThatNeedsATrackingService: {
    create: 'my/OtherThingThatNeedsATrackingService',
    properties: {
        foo: { wire: 'my/trackingServiceSpec' }
    }
},
//... more components

然后,在my/trackingService.js

代码语言:javascript
运行
复制
// Export the trackingService instance
$exports: { $ref: 'trackingService' },

trackingService: {
    create: {
        module: 'Bnaya/App/TrackingService',
        args: []
    }
},
//... more components if you need

这将将一个新的Bnaya/App/TrackingService实例注入到需要一个的两件事情中的每一件中。$exports允许您从电线规范导出特定的组件,就像CommonJS exports一样。

这种方法有一些很好的好处,因为您可以在my/trackingService.js中配置“私有”组件,并且它们也将根据需要创建,但只有trackingService是可见的。缺点是,将这样的原型组件分离到自己的线路规范中,有时需要做更多的工作。

即将发布的wire.js版本将支持其他类型的组件作用域,因此将使某些情况更加容易。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21265641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档