next/image 에서 제공하는 property인 placeholder=’blur’와 blurDataURL={ … } 을 사용한다면, 빈 화면이 뜨는 동안 블러처리 된 이미지가 화면에 보이게 이미지가 렌더링 될 때까지 효율적으로 제어할 수 있습니다. ux적으로도 사용자에게 이미지가 로딩 중임을 알려주고, 원본 이미지를 추측할 수 있도록 도와준다.
정적으로 이미지를 불러오는 상황
// placeholder='blur' 만 추가해도 자동으로 채워준다
import Image from 'next/image'
export default function Page() {
return (
<Image
src="/profile.png"
width={500}
height={500}
alt="profileImg"
placeholder="blur"
/>
)
}
동적으로 이미지를 불러오는 상황
blurDataURL 를 추가적으로 더하면 되는데 blurImg 는 base64로 인코딩되서 ASCII 문자열로만 이루어진 이미지 데이터가 들어가야 된다.
const base64 = 'data:image/jpeg;base64,'
const blurImg = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mO88B8AAqUB0Y/H4mkAAAAASUVORK5CYII='
<Image
src={img.url}
alt="image"
width={300}
height={300}
placeholder='blur'
blurDataURL={base64 + blurImg}
/>
base64로 인코딩된 이미지 픽셀 만들어주는 사이트
동적 이미지 placeholder, blurDataURL 적용 여부 비교
placeholder X , blurDataURL X
placeholder O, blurDataURL O
'Next.js' 카테고리의 다른 글
Next.js14 정리(2) (0) | 2024.08.28 |
---|---|
Next.js 14 정리(1) (0) | 2024.08.28 |
Next Auth(2) (0) | 2024.08.26 |
Next Auth(1) (0) | 2024.08.26 |
<img/>태그 이미지 원본 크기+next.js (0) | 2024.08.23 |