Blog

React use() og Suspense: datastreaming uden vandfald

Seks kort på et dashboard, seks spinnere, og de vises ikke sammen — de vises én efter én, som dominobrikker, fordi hvert kort kun begyndte at indlæse efter det ovenfor var færdigt. Det er et vandfald, og den samlede ventetid er ikke den langsomste forespørgsel, men summen af alle. use() og Suspense bryder kæden — men det interessante er maskineriet underneden: hvad en suspenderet komponent faktisk kaster, og hvordan HTML der ankommer i forkert rækkefølge alligevel lander det rigtige sted.

View Transitions i Next.js: sideanimationer uden animationsbibliotek

I ti år betød animering af et miniaturebillede til et hero-billede én teknik: mål elementet før, mål efter, forfalsk forskellen med en transform og afspil. FLIP. Hvert animationsbibliotek gør det, og hvert betaler for det med JavaScript på hovedtråden på det værst mulige tidspunkt. View Transitions API flytter hele tricket ind i browseren — og siden React 19.2 og Next.js 16 består hele kontrakten af én prop kaldet name.

Server Actions i Next.js: en formular, der virker, før JavaScript er indlæst

'use server' ligner syntaktisk sukker på en fetch til en API-rute – og netop derfor behandler de fleste implementeringer det som et almindeligt funktionskald. Det er en fejl med konkrete konsekvenser: enhver funktion mærket 'use server' bliver et offentligt netværksendepunkt, og en formular bygget på den mekanisme virker, selv før JavaScript når at indlæses. Jeg undersøger, hvad der reelt sker under det direktiv, og hvor faldgruberne ligger, som ikke er indlysende ved første blik i dokumentationen.

Oprettelse af tilgængelige komponenter til skærmlæsere

Korrekt HTML er kun begyndelsen. Se hvordan tilgængelighedstræet faktisk fungerer, hvorfor ARIA oftere gør skade end gavn end du tror, og byg en rigtig accordion, en live region og Next.js-fokushåndtering sammen med mig.