Komponent Image w Next.js: sizes, preload i zdalne obrazy

Przewodnik po komponencie Image w Next.js

Next.js Image: sizes, preload, remotePatterns i LCP | We.Inc

Jak działa next/image w Next.js 16: width, height i fill, kalkulator sizes, preload zamiast priority, remotePatterns, qualities i domyślne szerokości srcset.

Zaimportuj Image z next/image i podaj src, alt oraz albo width i height, albo fill. Dodaj ciąg sizes zawsze, gdy renderowana szerokość zmienia się wraz z ekranem, aby przeglądarka pobrała mniejszy plik. Dla obrazu hero, który jest Twoim LCP, ustaw preload (w Next.js 16 zastąpił priority). Zewnętrzne hosty dopuść przez images.remotePatterns.

Propsy, od których zależy szybkość

W Next.js łatwo popełnić dwa błędy z obrazami: obraz z fill bez sizes, przez co telefony pobierają pliki desktopowe, oraz hero czekający na leniwe ładowanie. Ta strona prostymi słowami wyjaśnia każdy prop, daje kalkulator, który pisze ciąg sizes dla Twojego układu, i wymienia domyślne ustawienia konfiguracji, których Next.js używa dziś.

Najczęściej zadawane pytania

Czy prop priority jest przestarzały?

Tak. Od Next.js 16 dokumentacja oznacza priority jako przestarzały na rzecz preload, który wstawia link preload do head. Dokumentacja mówi też, że w większości przypadków lepszym wyborem jest loading="eager" lub fetchPriority="high", a preload nie powinien być łączony z żadnym z tych propsów.

Dlaczego next/image mówi, że host nie jest skonfigurowany?

Zewnętrzne obrazy muszą pasować do wpisu w images.remotePatterns w next.config. Dodaj obiekt z protocol, hostname i pathname, na przykład /photos/**, a potem uruchom ponownie serwer deweloperski. Żądania niepasujące do żadnego wzorca dostają od optymalizatora obrazów odpowiedź 400.

Co właściwie zmienia prop sizes?

Mówi przeglądarce, jak szeroki będzie obraz w każdym breakpoincie, zanim załaduje się CSS. Z sizes Next.js generuje też pełny srcset oparty na szerokościach (640w, 750w i tak dalej) zamiast tylko 1x i 2x, więc telefon może wybrać znacznie mniejszy plik.

Czy z fill potrzebuję width i height?

Nie. fill oraz width/height to alternatywy. Z fill obraz rozciąga się do pozycjonowanego rodzica, a kadrowanie kontrolujesz przez object-fit w propie style lub className.

Jak długo buforowane są zoptymalizowane obrazy?

Domyślne minimumCacheTTL to 14400 sekund, czyli cztery godziny. Faktyczny max age to większa z dwóch wartości: ta albo nagłówek Cache-Control wysłany przez oryginalny obraz. Obrazy importowane statycznie dostają długotrwałe niezmienne buforowanie, bo ich nazwy plików zawierają hash.

Po co istnieje ten komponent

Poprawne LCP

Konfiguracja, którą będziesz zmieniać

Wszystkie propsy, których prawdopodobnie użyjesz

Propsy next/image (dokumentacja Next.js 16)

Domyślne ustawienia konfiguracji obrazów

Ustawienia images w next.config i ich wartości domyślne

Przykłady do skopiowania

Obraz hero ze statycznego importu

Import daje Next.js rzeczywiste wymiary i rozmyty placeholder. preload rozpoczyna pobieranie z head.

Siatka kart z fill i sizes

Każda karta zajmuje jedną trzecią strony na desktopie, połowę na tabletach i pełną szerokość na telefonach, i dokładnie to mówi wartość sizes.

next.config.ts dla zdalnego hosta obrazów

Dozwolone są tylko pliki HTTPS w /uploads/ na jednym hoście. Dopuszczone są dwie wartości jakości.

Pełna szerokość

Połowa na desktopie

Siatka 2 kolumn

Siatka 3 kart

Siatka 4 kart

Kalkulator sizes

Wybierz układ i breakpointy, aby wygenerować atrybut sizes, a potem zobacz, którą domyślną szerokość srcset dany ekran prawdopodobnie pobierze.

Układ

Breakpoint telefonu (px)

Breakpoint tabletu (px)

Szerokość ekranu: {n}px

Gęstość pikseli

Przy {screen}px slot obrazu ma około {slot}px szerokości ({vw}vw). Przy gęstości {dpr}x potrzeba {need} pikseli urządzenia, więc przeglądarka najpewniej pobierze kandydata {pick}w.

Kopiuj

Domyślne kandydujące szerokości: {list}. Przeglądarki mogą wybrać inaczej, na przykład gdy większy plik jest już w buforze.

Zacznij za darmo · Bez karty kredytowej

Powiązane: Poradniki

Produkt

Dla kogo

Funkcje

Zasoby

Firma

Mapa strony