1

我刚刚开始使用Flight.js并意识到组件实例共享局部变量,但在文档中没有找到任何相关信息。

这就是我的意思:

flight.component(function () {

    var sharedBetweenAllInstances = true;

    this.notShared = true;

}).attachTo('.multiple-elements');

例如,如果一个组件应该计算它的点击次数,它可以增加this.clicksCount每个实例上的点击次数,并增加var totalClicks组件任何实例上的总点击次数。

我在文档中没有找到任何关于此的内容,所以我想知道是否应该以这种方式使用飞行组件?

谢谢!

4

1 回答 1

2

我认为这不是一个好主意(可能是他们在文档中没有提到它的原因)。您设置为“组件”的功能实际上与您的组件使用的任何其他 mixin 一起作为功能性 mixin 应用。因此,虽然您在为许多组件中的每一个设置实例时可能能够访问该变量.attachTo('.multip-selector'),但如果单独附加,或者如果共享变量控制存在竞争条件的资源,您仍然可能会遇到问题访问该共享资源变得有问题。

从“组件”的角度来看,您最好将任何共享状态提取到单独的数据组件或控制器类型组件中,该组件可以接收来自各个组件的更新并在更新时广播共享状态。

这是我通过 jsbin 使用该场景的示例:http://jsbin.com/qecupi/edit? js

于 2015-06-15T00:45:41.483 回答