進階架構
PerformanceUX

Nuxt Image

圖片通常是網頁載入速度的瓶頸。Nuxt Image 提供了一套自動化的解決方案,能即時調整圖片大小、壓縮並轉換格式,大幅提升 Core Web Vitals 分數。

安裝與設定

Nuxt Image 是一個官方模組,安裝非常簡單。請在終端機執行以下指令:

Terminal
npx nuxi@latest module add image

安裝完成後,系統會自動更新 package.json。接著,您需要在 nuxt.config.ts 中註冊模組並進行全域設定:

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxt/image'],
  image: {
    // 設定預設選項
    format: ['webp'],
    quality: 80,
  }
})

基本用法

使用 <NuxtImg> 元件取代原生的 <img> 標籤。 它會自動生成最佳化的圖片 URL。

  • 自動轉換為 WebP/AVIF
  • 自動調整尺寸 (Resize)
  • 內建 Lazy Loading
app.vue
<template>
  <!-- 自動轉換為 WebP 並調整大小 -->
  <NuxtImg 
    src="/photos/mountain.jpg" 
    width="800" 
    height="500"
    format="webp"
    loading="lazy"
    class="rounded-lg shadow-lg"
  />
</template>

核心功能

格式轉換

自動將 JPG/PNG 轉換為更輕量的 WebPAVIF,減少檔案大小達 50% 以上。

尺寸優化

根據螢幕大小自動提供合適尺寸的圖片,避免在手機上載入 4K 大圖。

延遲載入

預設啟用 Lazy Loading,只有當圖片進入視窗範圍時才開始下載,加快首屏載入速度。


圖片服務商 (Providers)

Nuxt Image 支援多種圖片來源與 CDN。除了預設的本地 IPX 處理器外,也支援第三方服務。

Vercel
Netlify
Cloudinary
nuxt.config.ts
export default defineNuxtConfig({
  image: {
    // 使用 Unsplash 作為圖片來源
    domains: ['images.unsplash.com'],
    
    // 或者設定專屬 Provider (如 Cloudinary)
    provider: 'cloudinary',
    cloudinary: {
      baseURL: 'https://res.cloudinary.com/my-cloud/image/upload/'
    }
  }
})