Debounce decorator
Debouncing is a JavaScript pattern commonly used for rate limiting event handlers for keyboard or scroll events.
Check out this article by David Walsh for more background information.
This library provides a decorator that you can use to debounce class methods.
Installation
Install this component using NPM like so:
npm install debounce-decorator --save-dev
Usage
Debounce class methods like so:
import Debounce from 'debounce-decorator'
class MyComponent {
constructor() {
document.addEventListener('keyup', this.onKeyUp)
}
@Debounce(250)
onKeyUp(event) {
}
}
Debounced functions also define a clear
property that can be used to cancel any pending, debounced updates.
import Debounce from 'debounce-decorator'
class MyReactComponent extends Component {
componentDidMount () {
}
componentWillUnmount () {
this.onGlobalEvent.clear()
}
@Debounce()
onGlobalEvent(event) {
}
}
You can also decorate plan functions (not class methods) if you'd like.
import { debounce } from 'debounce-decorator'
const debouncedFunction = debounce(
function normalFunction (value) {
}
)
License
debounce-decorator is available under the MIT License.