Det blev klart att konceptet för webbläsarresurser inte kunde tillämpas universellt på alla hoisted taggar som titel, meta och andra länkar. Dessutom led resurserna av bristen på uppdateringsbegränsningar, vilket gjorde det svårt för utvecklare att resonera om och hantera dem effektivt.
För att övervinna dessa utmaningar introducerades Hoistables, en generalisering av Floats koncept, som införde två distinkta kategorier: hoistable elements och hoistable resources. Med denna uppdelning kunde man mer effektivt hantera olika typer av hoisted data.
Hissbara element renderas på servern som vanliga taggar, men kan också renderas tidigare för att förbättra prestanda. På klienten beter de sig som värdkomponenter men med en annan hydratiseringsstrategi för att säkerställa korrekt parning med DOM-instanser.
Hissbara resurser, å andra sidan, hoistas och avdupliceras via en href-nyckel och räknas för att möjliggöra effektiv hantering och eventuell rensning av oanvända resurser.
Stöd för <style>-taggar har också lagts till, vilket gör det möjligt att behandla dem som resurser för att underlätta inlining av externa stilmallar och hantering av inlinestilar. Detta ger avancerad funktionalitet som kan vara särskilt användbar för olika stylingbibliotek och utvecklare som vill optimera sin CSS-hantering.
Sammanfattningsvis möjliggör Hoistables en mer strukturerad och effektiv hantering av hoisted elements och resurser, vilket bidrar till förbättrad prestanda och bättre hanterbarhet för utvecklare. Med dess implementering kan man nu mer smidigt och säkert arbeta med dessa viktiga delar av webbutveckling.
Läs mer på https://github.com/facebook/react/pull/26106