FirstViewにはいらんけど、スクロールして登場するまでにはなるべく存在してほしいみたいな画像があったので作ってみました。
正直こんな雑なやり方で合ってるのか分からんのでもっといい方法知ってる人がいたら教えてください頼みます。
import * as React from 'react';
type Props = {
imgUrl: string;
alt: string;
};
export default function LazyAndPreloadImage(props: Props) {
const [loaded, setLoaded] = React.useState(false);
React.useEffect(() => {
// preload しておく
const img = new Image();
img.src = props.imgUrl;
// 読み込めたら img タグ描画する
img.onload = () => {
setLoaded(true);
};
}, []);
if (loaded) {
return <img src={props.imgUrl} alt={props.alt} />;
}
// 雑に空divにしてるけど思い思いのplaceholder入れてください
return <div></div>;
}