React/Next.jsでcanvasを利用する
2023-02-264 min read
目次
概要
React(及び Next.js)で canvas を扱って絵を描いた際のメモです。
環境
- react 18.2.0
ソース
import React, { useEffect, useRef } from "react";
export const Index = () => {
const canvasRef = useRef<HTMLCanvasElement>(null);
useEffect(() => {
if (!canvasRef.current) {
throw new Error("objectがnull");
}
const canvas = canvasRef.current;
const ctx = canvas.getContext("2d");
if (!ctx) {
throw new Error("context取得失敗");
}
// 黒い長方形を描画する
ctx.fillStyle = "#000000";
ctx.fillRect(0, 0, ctx.canvas.width / 2, ctx.canvas.height / 2);
}, []);
return (
<div>
<canvas ref={canvasRef} width={600} height={450} />
</div>
);
};
export default Index;
ポイントとしてはuseRef
を利用しました。
※ useRef について
useRef は、.current プロパティが渡された引数 (initialValue) に初期化されているミュータブルな ref オブジェクトを返します。返されるオブジェクトはコンポーネントの存在期間全体にわたって存在し続けます。 フック API リファレンス – React
Recommends
New Posts
Hot posts!
Date
Tags
(110)
(54)
(54)
(47)
(45)
(36)
(30)
(29)
(24)
(24)
(22)
(21)
(21)
(20)
(19)
(17)
(16)
(16)
(15)
(14)
(12)
(12)
(12)
(12)
(12)
(12)
(11)
(10)
(10)
(10)
(10)
(10)
(9)
(9)
(8)
(8)
(8)
(8)
(7)
(7)
(6)
(6)
(6)
(6)
(6)
(5)
(5)
(5)
(5)
(4)
Author