javascript - Famous 中的发出/订阅模式与管道模式

标签 javascript famo.us

这两种方法都可以使用,以便一个事件处理程序可以监听另一个事件处理程序的事件触发。文档说它们是同一件事,只是实现不同。我想知道为什么框架要为同一任务提供两种不同的方法?可能 pipe() 更适合链接,但我想知道使用 pipe() 相对于 emit()/subscribe( 是否还有其他隐藏的优势)

最佳答案

如果您执行widgetA.pipe(widgetB),则来自widgetA的所有事件都会发送到widgetB,无论widgetB是否code> 正在听他们说话。 Pipe 就像消防水带。

另一方面,

Subscribe 的性能更高。 WidgetB.subscribe(widgetA) 表示“在您发出的内容中,我想订阅特定的子集。”其他事件将被完全忽略。

这在与 DOM 交互时尤其重要,因为 DOM 会输出大量事件(mousedown、mouseup、touchmove、resize 等...),并且在监听时最好使用 Subscribe一个 DOM 元素。

关于javascript - Famous 中的发出/订阅模式与管道模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23828119/

相关文章:

javascript - famo.us:Surface 子类

c# - 使用 C# 代码隐藏方法的 For 循环

javascript - 在 Wordpress 中制作 javascript 幻灯片

javascript - 何时在 famo.us 中使用 #render 方法

javascript - 从 ScrollContainer 传递事件

javascript - 清除Famo.us框架中Timer类的setInterval

Famo.us ScrollView 不滚动

javascript - 如何更改为 keyup

javascript - WebRTC:多方视频 session

javascript - 当窗口未聚焦时 setTimeout() 是否有问题?