Por que o setState no reactjs Async em vez de Sync?
Acabei de descobrir que em reagirthis.setState()
A função em qualquer componente é assíncrona ou é chamada após a conclusão da função na qual foi chamada.
Agora eu pesquisei e encontrei este blog (http://www.bennadel.com/blog/2893-setstate-state-mutation-operation-may-be-synchronous-in-reactjs.htm)
Aqui ele descobriu quesetState
é assíncrono (chamado quando a pilha está vazia) ou sincronizado (chamado assim que chamado), dependendo de como a alteração de estado foi acionada.
Agora, essas duas coisas são difíceis de digerir
No blog, osetState
função é chamada dentro de uma funçãoupdateState
, mas o que desencadeou oupdateState
função não é algo que uma função chamada saiba.Por que eles fariamsetState
assíncrono como JS é uma linguagem de encadeamento único e esse setState não é uma chamada de WebAPI ou de servidor, portanto, isso deve ser feito apenas no encadeamento de JS. Eles estão fazendo isso para que a nova renderização não pare todos os ouvintes de eventos e outras coisas, ou há algum outro problema de design.