我才刚刚开始使用 Flight.js并意识到组件实例共享局部变量,但在文档中没有找到任何相关信息。
这就是我的意思:
flight.component(function () {
var sharedBetweenAllInstances = true;
this.notShared = true;
}).attachTo('.multiple-elements');
例如,如果一个组件要计算点击次数,它可以为每个实例的点击次数增加 this.clicksCount
,为每个实例增加 var totalClicks
组件任何实例的总点击次数。
我在文档中没有找到任何相关信息,所以我想知道飞行组件是否应该这样使用?
谢谢!
最佳答案
我认为这不是一个好主意(可能是他们没有在文档中提及它的原因)。您设置为“组件”的功能实际上作为功能混合应用,以及您的组件使用的任何其他混合。因此,虽然您可以在执行 .attachTo('.multip-selector')
时访问该变量,其中您正在为许多组件中的每一个设置一个实例,但您仍然可能会遇到如果单独附加,或者如果共享变量控制资源,在其中访问该共享资源的竞争条件会出现问题,则会出现问题。
从“组件”的 Angular 来看,您最好将任何共享状态提取到单独的数据组件或 Controller 类型组件中,这些组件或 Controller 类型组件可以从各个组件接收更新并在更新时广播共享状态。
这是我通过 jsbin 使用该场景组合在一起的示例:http://jsbin.com/qecupi/edit?js
关于javascript - Flight.js 组件实例应该使用共享变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30415434/