Flight.js 组件实例应该使用共享变量吗?

Should Flight.js component instances make use of shared variables?

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

这就是我的意思:

flight.component(function () {

    var sharedBetweenAllInstances = true;

    this.notShared = true;

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

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

我在文档中没有找到任何相关信息,所以我想知道飞行组件是否应该这样使用?

谢谢!

我认为这不是个好主意(可能是他们没有在文档中提及的原因)。您设置为 "component" 的函数实际上是作为功能性混入应用的,连同您的组件使用的任何其他混入。因此,虽然您在执行 .attachTo('.multip-selector') 时可以访问该变量,其中您正在为许多组件中的每一个设置一个实例,但如果单独附加,或者如果共享变量控制资源,其中访问该共享资源的竞争条件会出现问题。

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

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