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

标签 javascript twitter-flight

我才刚刚开始使用 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/

相关文章:

javascript - 强制 html 属性具有相同的值

javascript - 使用 Twitter Flight 将组件附加到动态创建的元素

javascript - 将 Bacon.js 与 FlightJS 结合使用

javascript - FlightJs 事件传播

javascript - 在 DynamoDB 中搜索表失败时如何回调错误消息

javascript - Dashcode 列表 - OnClick

javascript - Jenkins-将Yaml文件从管道错误部署到Kubernetes

javascript - 将 Yii CGridView 的可选行限制为复选框列

javascript - Safari 出现文本输入问题,用户输入文本时选择文本,导致文本丢失

javascript - 获取飞行组件事件的委托(delegate)目标