React Academy · Les

Afbeeldingen en fonts optimaliseren in React

Gebruik next/image of lazy-loaded met de juiste afmetingen, formaten (AVIF/WebP) en font-display.

Les 3 van 413 stappen

Afbeeldingen en fonts optimaliseren in React is een gratis React Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject React Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus React Academy bevat in totaal 4 lessen.

Waarom afbeeldingen belangrijk zijn

Afbeeldingen zijn meestal de grootste bronnen op een pagina. Niet-geoptimaliseerde afbeeldingen veroorzaken een slechte LCP, trage pagina's en hoge bandbreedtekosten — vooral op mobiele apparaten.

De Image-component van Next.js

next/image optimaliseert afbeeldingen automatisch: standaard lui laden, responsieve srcSet, moderne indelingen (WebP/AVIF) en de juiste afmetingen om CLS te voorkomen.

import Image from 'next/image';

<Image
  src="/hero.jpg"
  alt="Hero image"
  width={1200}
  height={600}
  priority // preload above-the-fold images
  sizes="(max-width: 768px) 100vw, 50vw" // responsive sizing
/>

Lui laden in gewone React

Voeg loading='lazy' toe aan native <img>-elementen. De browser stelt het laden van afbeeldingen buiten beeld uit tot ze tijdens het scrollen in de buurt van het weergavegebied komen.

// Below-the-fold images:
<img src="/product.jpg" alt="Product" loading="lazy" />

// Above-the-fold (hero) — eager to avoid LCP delay:
<img src="/hero.jpg" alt="Hero" loading="eager" fetchPriority="high" />

Moderne afbeeldingsindelingen

Serveer WebP of AVIF in plaats van JPEG/PNG. AVIF is bij dezelfde kwaliteit 50% kleiner dan JPEG. Gebruik een element <picture> om tussen indelingen te kiezen met terugvalopties.

<picture>
  <source srcSet="/hero.avif" type="image/avif" />
  <source srcSet="/hero.webp" type="image/webp" />
  <img src="/hero.jpg" alt="Hero" width="1200" height="600" />
</picture>

Responsieve afbeeldingen met srcSet

Lever meerdere formaten aan, zodat de browser de juiste resolutie voor het scherm kan kiezen en je voorkomt dat een afbeelding van 2000px wordt gedownload voor een mobiel scherm van 400px.

<img
  src="/photo-800.jpg"
  srcSet="/photo-400.jpg 400w, /photo-800.jpg 800w, /photo-1600.jpg 1600w"
  sizes="(max-width: 600px) 400px, (max-width: 1200px) 800px, 1600px"
  alt="Photo"
/>

Blurhash-/skelethouders

Toon tijdens het laden van de afbeelding een vervaagde tijdelijke afbeelding om verschuivingen in de lay-out te voorkomen en de waargenomen prestaties te verbeteren.

// With next/image blur placeholder:
<Image
  src="/photo.jpg"
  alt="Photo"
  width={800}
  height={600}
  placeholder="blur"
  blurDataURL="data:image/jpeg;base64,/9j/4AAQ..." // tiny base64 blur
/>

Strategie voor het laden van lettertypen

Lettertypen blokkeren het tekenen. Gebruik font-display: swap om een terugvallettertype te tonen terwijl het aangepaste lettertype wordt geladen, zodat FOIT (flits van onzichtbare tekst) wordt beperkt.

/* In global CSS: */
@font-face {
  font-family: 'MyFont';
  src: url('/fonts/MyFont.woff2') format('woff2');
  font-display: swap; /* show fallback, swap to MyFont when ready */
}

Lettertypeoptimalisatie in Next.js

next/font laadt Google Fonts tijdens het bouwen, host ze zelf en past font-display: optional toe om CLS door het wisselen van lettertypen te voorkomen.

import { Inter } from 'next/font/google';

const inter = Inter({
  subsets: ['latin'],
  display: 'swap',
  variable: '--font-inter',
});

export default function RootLayout({ children }) {
  return <html className={inter.variable}><body>{children}</body></html>;
}

Lettertypen beperken

Laad alleen de tekensets die je nodig hebt. Een volledig Unicode-lettertype kan 1 MB of groter zijn; een Latijnse tekenset is meestal 30–80 KB.

// Google Fonts URL with subset:
https://fonts.googleapis.com/css2?family=Roboto&subset=latin

// next/font:
const roboto = Roboto({ weight: '400', subsets: ['latin'] });

Kritieke lettertypen vooraf laden

Laad lettertypen die boven de vouw worden gebruikt vooraf, zodat ze parallel aan het parsen van HTML worden geladen en de tijd waarin het tekenen wordt geblokkeerd afneemt.

<link
  rel="preload"
  href="/fonts/MyFont.woff2"
  as="font"
  type="font/woff2"
  crossOrigin="anonymous"
/>

CDN en caching

Serveer afbeeldingen en lettertypen via een CDN met lange cache-TTL's (Cache-Control: max-age=31536000, immutable). Bestandsnamen met een inhoudshash zorgen ervoor dat nieuwe bestanden de cache omzeilen.

Snelle controle

Wat doet font-display: swap voor weblettertypen?

Samenvatting

Gebruik next/image voor automatische optimalisatie, of native loading='lazy' + srcSet voor gewone React. Serveer AVIF/WebP met terugvalopties in <picture>. Pas font-display: swap toe voor weblettertypen, gebruik next/font om Google Fonts zelf te hosten en laad kritieke bronnen boven de vouw vooraf.

Gratis beginnen

Leer React met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
88
Lessen
324

Veelgestelde vragen

Is de les “Afbeeldingen en fonts optimaliseren in React” gratis?

Ja — de volledige tekst van “Afbeeldingen en fonts optimaliseren in React” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus React Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus React Academy bevat in totaal 4 lessen.

Wat leer ik in “Afbeeldingen en fonts optimaliseren in React”?

Gebruik next/image of lazy-loaded met de juiste afmetingen, formaten (AVIF/WebP) en font-display. Je oefent met React Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met React Academy te beginnen?

Ervaring vooraf is niet nodig. React Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Afbeeldingen en fonts optimaliseren in React”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over React Academy?

Ja. Elke les over React Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Core Web Vitals meten in React-apps
  2. Bundle-analyse en strategie voor codesplitsing
  3. Afbeeldingen en fonts optimaliseren in React
  4. INP verlagen: event-handlers optimaliseren
← Terug naar React Academy