【问题标题】:Events in a client-side JavaScript application [closed]客户端 JavaScript 应用程序中的事件 [关闭]
【发布时间】:2016-02-21 15:34:29
【问题描述】:

用原生 JavaScript 编写自己的事件总线很简单,但是利用内置的 DOM 事件处理 API 和 CustomEvents 用于应用程序事件总线有什么优势吗?

【问题讨论】:

  • 一个明显的优势是您不必自己编写。 :-) 一个明显的缺点是它与 DOM 相关联。

标签: javascript dom custom-event


【解决方案1】:

原生 DOM 事件并不像人们想象的那么简单。有关bubbling and propagation of DOM events 的更多详细信息。 也许这就是为什么每个现代 JS 框架都不依赖 DOM 事件来处理数据的原因。

Angular 1.x 内置了 pub/sub 系统,易于使用,但与应用程序逻辑中发生的事情无关,在大型应用程序中很容易变得复杂。 p>

//subscribe and listen
    $scope.$on(name, function(){});
//emit up or down
    $scope.$broadcast(name, args);
    $scope.$emit(name, args);

ReactJS 有另外一个系统 system to handle events 和他们的数据,同样与真实的 DOM 无关。在这种情况下,事件更多地与应用程序的实际状态相关联,并且可以通过多种方式来处理它 - fluxfluxxorredux 等。

还有一个小型 (6kb) 库,不依赖于处理事件流思想应用程序 - PubSubJS

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-28
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多