오늘은 Next JS 로 영화 클론앱을 만들며 공부했던 Next/Image에 대해서 :)
❗ 공식문서
Next에서는 기본적으로 HTML에서 제공하는 <img>
태그가 아닌, 기본적으로 Image
컴포넌트를 제공한다.
NextJs 는 이미지 로딩을 쉽게 관리하고, 최적화 하기위해 컴포넌트를 따로 제공한다.
<Image />
태그는 반응형 이미지를 지원하여 이미지는 다양한 크기의 화면에 적합하게 표시된다.<Image />
태그는 필수로 들어가야 하는 props 들이 존재한다.src
, alt
, width
, height
가 존재하는데, 우선 아래는 기본 사용 방법이다.import Image from 'next/image'
<Image
src="/path/to/image.jpg"
width={500}
height={500}
alt="A description of the image"
layout="responsive"
quality={90}
loading="lazy"
priority
/>
src
, alt
, width
, height
layout
display: block
을 추가해야 한다.placeholder
priority
true
, 적용하지 않을 경우 false
가 된다.quality
sizes
<Image
src="image.jpg"
sizes="(max-width: 720px) 100vw, 720px"
/>
src
에서 외부 url 을 사용할 경우 next.config.js 에서 외부 url 을 사용한다고 설정해주어야 에러가 발생하지 않는다!// - next.cofig.js
module.exports = {
images: {
remotePatterns: [
{
protocol: "https",
hostname: "image.tmdb.org",
},
],
},
}