KamoCRM

Memoize o całej aplikacji nieczytana wartość, napraw efekt samoodrzutowy

Performancekamo-internal
Przesyłane
26 sierpnia 2026 02:40 UTC
Autor
kamo
Zgłoszenie
d8ab7f4

UnreadContext opublikował czternastoosobową literę dosłowną jako jego wartość kontekstową, więc React Zobaczył zmianę kontekstu na każdym renderowaniu dostawcy i obudził każdego konsumenta do ręki To samo się liczy. Jest zamontowany w całej aplikacji wewnątrz AuthedChrome i czytany przez nav Odznaki, powierzchnie rozmów i głowice hex, więc "każdy konsument" jest szerokim wentylatorem. Wszystko Czternastu członków to useCallback'd lub stan pochodny, więc metowanie zmienia tylko wartość Kiedy coś, co konsument może zobaczyć, poruszyło się. Efekt obciążenia VirtualMessageList wpisany na listę "wirtualizer.getVirtualItems()" - Tablica zależności. Ta metoda buduje i zwraca nową tablicę na każdym wywołaniu, więc zależność była świeżym odniesieniem do każdego renderowania i efektu za każdym razem, Porównanie indeksów, które już porównał — na liście wiadomości, na każdym zwiastu Ramka. To, co naprawdę zależy, to jak daleko przewińczana lista jest jedna Liczba, to zależy od tej liczby teraz. To samo połączenie jest również ponownie używane do rzędów, zamiast być wykonane po raz drugi dalej W dół renderu. Zweryfikowano: tsc --noEmituj czyste przez UnreadContext, VirtualMessageList i AuthedChrome z ich import tranzytowy; wszystkie 9 strażników przechodzi; 36 testów w gabinezonach czat i wiadomości Przejście.

Wszystkie zmiany

Jak to, co widzisz żeglugę?

Wszystko to pojawia się w twoim miejscu pracy na własną rękę. Zacznij od bezpłatnego planu i przeczytaj tę stronę ponownie w miesiącu.

Zacząć na zawszeZobacz ceny