<Image> استفاده کنیم؟کامپوننت next/image نسخهای بهینهشده از تگ <img> است که امکانات زیر را فراهم میکند:
ابتدا کامپوننت را وارد کرده و در JSX استفاده کنید:
import Image from 'next/image'
export default function Page() {
return <Image src="" alt="" />
}تصاویر را در پوشهٔ /public قرار دهید و با مسیر نسبی از ریشه به آنها ارجاع دهید:
<Image
src="/profile.png"
alt="تصویر نویسنده"
width={500}
height={500}
/>اگر تصویر را بهصورت ایستا import کنید، Next.js بهطور خودکار عرض، ارتفاع و placeholder محو را تشخیص میدهد:
import ProfileImage from './profile.png'
<Image
src={ProfileImage}
alt="تصویر نویسنده"
placeholder="blur"
/>برای استفاده از تصاویر خارجی، کافی است URL تصویر را در src قرار دهید:
<Image
src="https://s3.amazonaws.com/my-bucket/profile.png"
alt="تصویر نویسنده"
width={500}
height={500}
/>چون Next.js در زمان build به تصاویر ریموت دسترسی ندارد، باید width و height را بهصورت دستی مشخص کنید تا نسبت تصویر حفظ شود و از جابهجایی چیدمان جلوگیری شود. همچنین میتوانید از ویژگی fill برای پر کردن فضای والد استفاده کنید.
برای استفاده ایمن از تصاویر خارجی، دامنههای مجاز را در next.config.ts تعریف کنید:
// next.config.ts
import type { NextConfig } from 'next'
const config: NextConfig = {
images: {
remotePatterns: [
{
protocol: 'https',
hostname: 's3.amazonaws.com',
pathname: '/my-bucket/**',
},
],
},
}
export default configنکته: دامنهها را بهصورت دقیق مشخص کنید تا از سوءاستفاده جلوگیری شود.
کامپوننت <Image> در Next.js راهکاری مدرن و بهینه برای مدیریت تصاویر است. چه از تصاویر محلی استفاده کنید و چه از منابع خارجی، این کامپوننت تضمین میکند که تصاویر با سرعت بالا، کیفیت مناسب و بدون جابهجایی چیدمان بارگذاری شوند.