Only call RAF when needed.
var nanoraf = require('nanoraf')
var prev = null
var frame = nanoraf(function render (state) {
console.log(state.now)
})
updateState({ now: date.now() })
updateState({ now: date.now() })
updateState({ now: date.now() })
updateState({ now: date.now() })
function updateState (state) {
prev = prev || {}
frame(state, prev)
prev = state
}
Wrap a render
function that is called on every raf
tick. If no new state is
available, it will not tick. Passes the last version of the state on every tick.
Optionally, provide an implementation of requestAnimationFrame
via the
raf
parameter (for example, the one provided by the raf
package). If omitted, raf
defaults to
window.requestAnimationFrame
.
Pass arguments into the render function, to be called on a new tick.
$ npm install nanoraf