React 18 lander med flertrådet rendering

React 18 lander med flertrådet rendering
Illustration: Mehaniq/Bigstock.
Concurrent React ligger bag flere nye faciliteter i Javascript-miljøet.
7. april kl. 08:50
errorÆldre end 30 dage

Javascript-miljøet React er landet i en ny version. 

Mange af funktionerne i React 18 bygger oven på projektets flertråede renderingsmaskine. Det er en ændring bag kulisserne, der åbner op for nye muligheder, skriver udviklerne i et blogindlæg

»Concurrent React er opt-in – det er kun aktiveret, når du bruger en concurrent-funktion – men vi tror, at det vil få stor betydning for den måde, folk bygger applikationer på.«

Den nye udgave indeholder forbedringer såsom automatisk batching.

Artiklen fortsætter efter annoncen

React bruger batching til at gruppere opdateringer af tilstanden indenfor eventhandlers og indbyggede hooks. Det stopper komponenterne i at genoptegne for hver enkel tilstandsopdatering og forbedrer på denne måde ydelsen.

Tidligere var det kun browserevents, der blev samlet i batches, men i den nye version vil Automatic Batching benyttes for alle tilstandsopdateringer, uanset hvor de opstår.

Med et nyt api, startTransition, kan man forbedre brugerinteraktionerne betydeligt ved at markere specifikke opdateringer som overgange. Api'et giver mulighed for at give visuel feedback under en tilstandsovergang og holde browseren responsiv, mens en overgang finder sted.

En tidligere udgave af React tilføjede et Suspense-komponent, som giver mulighed for at vente på en indlæsning af et komponent og deklarativt angive det med eksempelvis en ‘spinner.’

Suspense for Data Fetching er en ny facilitet i version 18, som gør det muligt også at bruge Suspense-elementet til deklarativt at ‘vente’ på noget andet. Det kan bruges når der hentes data, men også når der ventes på indlæsning af billeder, scripts eller andet asynkront arbejde.

Både startTransition og Suspense for Data Fetching bygger på den nye Concurrent React-facilitet.

Ingen kommentarer endnu.  Start debatten
Debatten
Log ind for at deltage i debatten.
settingsDebatindstillinger