Framework-agnostic pattern

Same API for React/Vue/Angular — create in mount, destroy on unmount.

useEffect(() => {
  const recorder = new WebRec.ScreenCapture({ ui: false });
  recorder.on('stop', onStop);
  return () => recorder.destroy();
}, []);