4.11.2 • Published 3 years ago

@rooks/use-raf v4.11.2

Weekly downloads
146
License
MIT
Repository
github
Last release
3 years ago

@rooks/use-raf

Note: Future updates to this package have moved to the main package rooks. All hooks now reside in a single package which you can install using

npm install rooks

or

yarn add rooks

Rooks is completely treeshakeable and if you use only 1 of the 50+ hooks in the package, only that hook will be bundled with your code. Your bundle will only contain the hooks that you need. Cheers!

TitleCard

Build Statusnpm.io npm.io npm.io npm.io

About

A continuously running requestAnimationFrame hook for React

Image from Gyazo

Installation

npm install --save @rooks/use-raf

Importing the hook

import useRaf from "@rooks/use-raf";

Usage

let angle = 0;
function updateAngle() {
  angle = (angle + 3) % 360;
  return (angle * Math.PI) / 180;
}

function Demo() {
  const { value: shouldRun, toggleValue: toggleShouldRun } = useToggle(true);
  const myRef = useRef();
  const canvasRef = useRef();
  useRaf(() => {
    if (canvasRef && canvasRef.current) {
      const screenRatio = window.devicePixelRatio || 1;
      let angle = updateAngle();
      const canvas = canvasRef.current;
      var ctx = canvas.getContext("2d");
      ctx.save();
      ctx.clearRect(0, 0, canvasRef.current.width, canvasRef.current.height);
      ctx.scale(screenRatio, screenRatio);
      ctx.fillStyle = "midnightblue";
      ctx.globalAlpha = 1;
      ctx.fillRect(0, 0, canvasRef.current.width, canvasRef.current.height);
      ctx.fillStyle = "yellow";
      ctx.lineWidth = 2;
      ctx.translate(50, 50);
      ctx.rotate(angle);
      ctx.fillRect(-20, -20, 40, 40);
      ctx.restore();
    }
  }, shouldRun);

  return (
    <>
      <h2>
        Request animation frame is now {shouldRun ? "" : "in"}active. Click to
        toggle.
      </h2>
      <p>
        <button onClick={toggleShouldRun}>Toggle Raf</button>{" "}
      </p>
      <canvas
        ref={canvasRef}
        style={{ height: `100px`, width: `100%`, background: "grey" }}
      />
    </>
  );
}

render(<Demo />);
4.11.1

3 years ago

4.11.2

3 years ago

4.11.0

3 years ago

4.10.1

3 years ago

4.10.0

3 years ago

4.9.2

3 years ago

4.9.1

3 years ago

4.9.0

3 years ago

4.9.0-canary.0

3 years ago

4.8.1

3 years ago

4.8.0

3 years ago

4.7.0

3 years ago

4.7.1

3 years ago

4.6.1

3 years ago

4.6.0

3 years ago

4.5.0

3 years ago

4.5.0-canary.2

3 years ago

4.4.0

3 years ago

4.2.1-canary.0

3 years ago

4.2.1-canary.2

3 years ago

4.2.1-canary.3

3 years ago

4.3.0

3 years ago

4.2.0

3 years ago

4.1.1-canary.0

3 years ago

4.1.1

3 years ago

4.1.0

3 years ago

4.1.0-canary.2

3 years ago

4.1.0-canary.1

3 years ago

4.0.2

3 years ago

4.0.1

3 years ago

4.0.0-canary.23

3 years ago

4.0.0-canary.22

3 years ago

4.0.0

3 years ago

4.0.0-canary.20

3 years ago

4.0.0-canary.17

3 years ago

4.0.0-canary.19

3 years ago

4.0.0-canary.16

3 years ago

4.0.0-canary.14

3 years ago

4.0.0-canary.13

3 years ago

4.0.0-canary.10

3 years ago

4.0.0-canary.9

3 years ago

4.0.0-canary.8

3 years ago

4.0.0-canary.6

4 years ago

4.0.0-canary.0

4 years ago

3.6.1-canary.2

4 years ago

3.6.0

4 years ago

3.6.0-canary.0

4 years ago

3.5.1

4 years ago

3.5.1-canary.20

4 years ago

3.5.0

4 years ago

3.5.0-canary.9

4 years ago

3.4.4-71d48a96.0

4 years ago

3.4.4-e1839b43.0

4 years ago

3.4.4-a9fb8da1.0

4 years ago

3.4.3

4 years ago

3.4.4-ca7e506a.0

4 years ago

3.4.4-0b6223c4.0

4 years ago

3.4.3-cfbe4783.0

4 years ago

3.4.3-695b2acc.0

4 years ago

3.4.3-f130c101.0

4 years ago

3.4.3-53abf21e.0

4 years ago

3.4.3-bb90b83d.0

4 years ago

3.4.3-5f1a38fa.0

4 years ago

3.4.3-20c504bd.0

4 years ago

3.4.2

4 years ago

3.4.3-efa33040.0

4 years ago

3.4.2-1963d180.0

4 years ago

3.4.2-0668aca8.0

4 years ago

3.4.2-dev.1

4 years ago

3.4.2-dev.0

4 years ago

3.4.1

4 years ago

3.4.0

5 years ago

3.3.0

5 years ago

3.3.0-alpha.0

5 years ago

3.2.4

5 years ago

3.2.3

5 years ago

3.2.2-alpha.0

5 years ago

3.2.2

5 years ago

3.2.1

5 years ago

3.2.0

5 years ago

3.1.1-alpha.1

5 years ago

3.1.1-alpha.0

5 years ago

3.0.1

5 years ago

3.0.0

5 years ago

3.0.0-beta.4

5 years ago

3.0.0-beta.3

5 years ago

3.0.0-beta.1

5 years ago

3.0.0-beta.0

5 years ago

3.0.0-alpha.4

5 years ago

3.0.0-alpha.3

5 years ago

3.0.0-alpha.1

5 years ago

1.1.0

5 years ago

1.1.4-alpha.0

5 years ago

1.1.3-alpha.0

5 years ago

1.1.1-alpha.0

5 years ago

1.1.0-alpha.0

5 years ago

1.0.11-alpha.7

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.5-alpha.1

5 years ago

1.0.5-alpha.0

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

1.0.0-alpha.0

5 years ago