Memoizzare il valore non letto dell'app, fissare un effetto auto-retriggering

Performancekamo-internal
Shipped
26 agosto 2026 alle ore 02:40 UTC
Author
kamo
Commit
d8ab7f4

UnreadContext ha pubblicato un oggetto di quattordici membri letterale come valore di contesto, così React ha visto il cambiamento di contesto su ogni render del fornitore e ha svegliato ogni consumatore a portata di mano loro lo stesso conta. È montato app-wide dentro AuthedChrome e letto dal nav distintivi, le superfici di chat e le teste di esagonale, quindi "ogni consumatore" è un ventilatore ampio. Tutti quattordici membri sono utilizzatiStato di Callbackd o derivato, in modo da memoizzare cambia il valore solo quando qualcosa che un consumatore può effettivamente vedere si è mosso. VirtualMessageList più effetto elencato `virtualizer.getVirtualItems()` nel proprio Diagnosi. Questo metodo costruisce e restituisce un NUOVO array su ogni chiamata, quindi il la dipendenza è stata un nuovo riferimento su ogni rendering e l'effetto re-ran ogni volta, re-comparing indici che aveva già confrontato — nella lista dei messaggi, su ogni rotolo telaio. Ciò che dipende in realtà è quanto la lista è stata percorsa, che è uno numero; dipende da quel numero ora. La stessa chiamata viene anche riutilizzata per le righe invece di essere fatta una seconda volta più avanti giù il rendering. verificato: tsc --noEmit clean over UnreadContext, VirtualMessageList e AuthedChrome con le loro importazioni transitive; tutte le 9 guardie passano; 36 test attraverso la chat e le suite di messaggi Passo.

All changes

Come quello che vedi la spedizione?

Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.

Inizia gratis per sempreVisualizza il prezzo