포스트

ImagePreload

ImagePreload

이전페이지

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import { useRouter } from "next/router";
import { useEffect } from "react";

// 함수 외부에 내용을 저장한다.
const preloadImageData = [];

export default function ImagePreloadPage(): JSX.Element {
  const router = useRouter();
  useEffect(() => {
    const img = new Image();
    img.src = "이미지 주소";
    img.onload = () => {
      preloadImageData.push(img);
    };
  }, []);

  const onClickMove = (): void => {
    router.push("이동할 페이지 주소");
  };

  return <button onClick={onClickMove}>이동하기</button>;
}

이후페이지

1
2
3
4
5
6
7
export default function ImagePreloadMovedPage(): JSX.Element {
  return (
    <>
      <img src="이미지주소"></img>
    </>
  );
}

useEffect 통해 현재페이지에서 미리 이미지를 받아 캐싱한다.

이미지를 미리 다운 받으면 좋지만 다 받으면 성능적으로 저하가 생기기때문에 다음페이지로 무조건 갔을때 필요한 이미지르 받는 것이 좋다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.