Closed11
『5分講和」ReactComponentを画像にしてみるぞ
LTの資料です。5分クオリティ
とりあえず調べて出てきたやつを適当に使えばいいだろうの精神
最小構成で組んでみた
"use client";
import { useToPng } from "@hugocxl/react-to-image";
export default function Home() {
const [state, convert, ref] = useToPng<HTMLDivElement>({
onSuccess: (data) => {
const link = document.createElement("a");
link.download = "convertImg.png";
link.href = data;
link.click();
},
});
return (
<div>
<h1>test next js app</h1>
<div
style={{
width: "200px",
height: "fit-content",
border: "4px solid red",
}}
ref={ref}
>
<h2>title</h2>
<button
style={{
width: "100px",
height: "40px",
backgroundColor: "white",
border: "4px solid blue",
borderRadius: "12px",
}}
>
button
</button>
</div>
<button type="button" onClick={convert}>
convert
</button>
</div>
);
}
画像変換したいコンポーネントのrefを渡して、関数を呼び出すだけで動くらしい
サイトはこんな感じ。convertを押すと画像がダウンロードされる
refは赤線borderのdivに渡している
できた!
赤色のborderを消すとバグる
親要素の端っこにはなるべく何かしらの色をつけといた方が良さそう?
ちなみにこのライブラリは↓をラップしてカスタムフックで使えるようにしただけのものっぽい
canvasとか複雑な要素もconvertできるのか試してみたいね
適当にpushした。
もうちょっとちゃんと技術検証したいねもっと頻繁に更新されているライブラリないかな〜
(ないなら自分で作るしかないのかなぁ〜)
このスクラップは5ヶ月前にクローズされました