Um temporizador de atualização para o aplicativo inteiro, não um por useUserInfo()

Performancekamo-internal
Navios
26 de agosto de 2026 às 03:42 UTC
Autor
kamo
Enviar
10cb7a4

useUserInfo tem 194 sites de chamadas, cerca de uma dúzia deles montados para toda a sessão — o navegador, os provedores de shell, a plataforma de lançamento. Cada instância armou seus próprios 5 minutos intervalo e sua própria visibilidade mudar ouvinte, então o aplicativo carregava cerca de uma dúzia de timers e uma dúzia de ouvintes a fazer a mesma coisa no mesmo momento. Eles partilham um de cada agora. Cada assinante ainda atualiza seu próprio estado exatamente como antes, então nada sobre como os direitos dirigidos pelo administrador se propagam é diferente — isso é apenas sobre não armar uma dúzia de timers para disparar um pedaço de trabalho. Os pedidos foram já coalescido por loadUserInfoCompartilhado e atualizadoSessionCompartilhado, então o lado da rede foi Nunca o problema. Uma diferença de comportamento deliberada, e é uma melhoria: instâncias utilizadas para assinalar E agora partilham uma cadência. Disparar juntos é o que deixa o coalescer realmente desmontá-los em um único pedido; A sua própria viagem de ida e volta. O temporizador e ouvinte são criados quando o primeiro assinante chega e derrubado quando as últimas folhas, então uma superfície não autenticada sem usoUserInfo() consumer arms Nada. fireSessionRefresh copia o assinante definido antes de iterar, então um componente A desmontagem no meio do varrimento não pode remodelar a colecção por baixo dela. Deliberadamente NÃO feito: movendo o próprio estado do gancho para uma loja compartilhada. Isso seria... colapsar as raízes de React sujo ~12 na aba foco para baixo para um, que é a metade maior de esta constatação — mas reestrutura o modelo de estado do gancho que abre direitos e através de 194 sites de chamadas, e o modo de falha é direitos obsoletos ou errados, que nenhum teste aqui Apanharia. Ele quer um revisor que possa exercer o aplicativo. Verificado: tsc --noEmit clean over useUserInfo, useSoftphone e AuthedChrome importações transitivas; todos os 10 guardas passam; 66 testes através dos ganchos, sessão e voip As suites passam.

Todas as alterações

Como o que vês no transporte?

Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.

Começar Livre Para SempreVer Preços