requestAnimationFrame and cancelAnimationFrame component