客户端 JavaScript 应用程序中的事件
Events in a client-side JavaScript application
用 vanilla JavaScript 编写自己的事件总线很简单,但是利用内置 DOM 事件处理 API 和 CustomEvent
有什么好处吗对于应用程序事件总线?
原生 DOM 事件并不像人们预期的那么简单。有关 bubbling and propagation of DOM events 的更多详细信息。
也许这就是为什么每个现代 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有自己的另一个系统system to handle events and their data, again with no relation to real DOM. In that case events are more connected to actual state of the application and the variety of ways how that can be done gave rise to set of libraries to handle that - flux, fluxxor, redux,等等
还有一个小型 (6kb) 库,不依赖于处理事件流思想应用程序 - PubSubJS。
用 vanilla JavaScript 编写自己的事件总线很简单,但是利用内置 DOM 事件处理 API 和 CustomEvent
有什么好处吗对于应用程序事件总线?
原生 DOM 事件并不像人们预期的那么简单。有关 bubbling and propagation of DOM events 的更多详细信息。 也许这就是为什么每个现代 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有自己的另一个系统system to handle events and their data, again with no relation to real DOM. In that case events are more connected to actual state of the application and the variety of ways how that can be done gave rise to set of libraries to handle that - flux, fluxxor, redux,等等
还有一个小型 (6kb) 库,不依赖于处理事件流思想应用程序 - PubSubJS。