Memoize la valeur non luée à l'échelle de l'application, fixer un effet auto-retirant

Performancekamo-internal
Shipped
26 août 2026 à 02:40 UTC
Author
kamo
Commit
d8ab7f4

UnreadContext a publié un objet de quatorze membres littéral comme valeur contextuelle, donc React ont vu le changement de contexte sur chaque rendu du fournisseur et a réveillé chaque consommateur à portée de main les mêmes comptes. Il est monté à l'échelle de l'application à l'intérieur d'AuthedChrome et lu par la nav Les badges, les surfaces de discussion et les têtes hexagonales, donc "chaque consommateur" est un grand ventilateur. Tous 14 membres utilisent l'état de l'appel ou de l'état dérivé, donc commémorant la valeur change seulement quand quelque chose qu'un consommateur peut réellement voir a déménagé. VirtualMessageList's load-more effect listé «virtualizer.getVirtualItems() un réseau de dépendances. Cette méthode construit et retourne un nouveau tableau sur chaque appel, donc le la dépendance était une nouvelle référence à chaque rendu et l'effet ressurgit à chaque fois, les indices récomprécomsidérés qu'il avait déjà comparés - dans la liste des messages, sur chaque rouleau cadre. Ce dont il dépend en fait, c'est de la distance à laquelle la liste a été défilée, qui est un nombre; il dépend de ce nombre maintenant. Le même appel est également réutilisé pour les lignes au lieu d'être fait une deuxième fois plus en bas du rendu. Vérifié: tsc --noEmit nettoyable sur UnreadContext, VirtualMessageList et AuthedChrome avec leurs importations en transit; les 9 gardes passent; 36 tests à travers les suites de discussion et de messagerie Passs.

All changes

Comme ce que tu vois expédier ?

Chacune de ces mises à jour atterrit automatiquement dans votre espace de travail. Commencez gratuitement et regardez-le grandir semaine après semaine.

Commencez gratuitement pour toujoursPrix de visualisation