Provide performant/simple way to subscribe to browser DOM UI Events.
You can use a single addEventListener
instead of multiple addEventListener
for DOM UI Events by UIEventObserver
.
Example project show that add 100 "scroll"
event handler to window
.
- Left: 100x
addEventListener
- Right: 1
UIEventObserver
- Provide Observer for
addEventListener
- With
UIEventObserver
, instead of calling multiplewindow.addEventListener('scroll', eventHandler)
by different components, callsubscribe(window, 'scroll', eventHandler)
. - It will only add a single event listener and dispatch event to those who subscribe the event via EventEmitter.
- With
- Lightweight: 5kb(gzip)
Related library:
Install with npm:
npm install ui-event-observer
// singleton
import { eventObserver } from "ui-event-observer";
const handler = (event) => {
// do something
};
// subscribe "scroll" event
eventObserver.subscribe(window, "scroll", handler);
// fire by interaction
const event = new Event("scroll");
window.dispatchEvent(event);
// unsubscribe
eventObserver.unsubscribe(window, "scroll", handler);
// unsubscribe all
eventObserver.unsubscribeAll();
You can also use UIEventObserver
class:
import { UIEventObserver } from "ui-event-observer";
UIEventObserver class provide performant/simple way to subscribe to browser DOM UI Events.
registers the specified handler
on the target
element it's called eventName
.
Parameters
target
: Object - target Element NodeeventName
: string - event namehandler
: Function - event handler
Returns: Function - unsubscribe handler
registers the specified handler
on the target
element it's called eventName
.
It is called at once difference from UIEventObserver#subscribe
Parameters
target
: Object - target Element NodeeventName
: string - event namehandler
: Function - event handler
Returns: Function - unsubscribe handler
removes the event handler
previously registered with UIEventObserver#subscribe
Parameters
target
: Object - target Element NodeeventName
: string - event namehandler
: Function - event handler
unsubscribe all events with DOM Event
if has a subscriber at least one, return true
Parameters
Returns: boolean
See Releases page.
Install devDependencies and Run npm test
:
npm i -d && npm test
Pull requests and stars are always welcome.
For bugs and feature requests, please create an issue.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
MIT © azu