0

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

4

1 回答 1

1

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

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

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

ReactJS在它自己的系统上有另一个系统来处理事件及其数据,同样与真实的 DOM 无关。在这种情况下,事件更多地与应用程序的实际状态相关联,并且如何完成该操作的各种方式产生了一组库来处理它-fluxfluxxorredux等。

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

于 2016-02-21T15:46:53.353 回答