Това е, защото setState променя състоянието и причинява повторно изобразяване. Това може да бъде скъпа операция и синхронната й работа може да остави браузъра да не реагира. По този начин повикванията setState са асинхронни, както и групирани за по-добро изживяване и производителност на потребителския интерфейс.
Защо методът setState е асинхронен?
За да актуализирате състоянието на компонент, използвате метода setState. Въпреки това е лесно да се забрави, че методът setState е асинхронен, което причинява трудности при отстраняване на грешки във вашия код. Функцията setState също не връща Promise Използването на async/await или нещо подобно няма да работи.
Може ли setState да бъде направен синхронен?
Може да звучи странно, но yes setState може да работи синхронно в react.
Защо има забавяне в setState?
Официално обяснение. Мислете за setState() като заявка, а не като незабавна команда за актуализиране на компонента. За по-добро възприемане на производителността, React може да го забави и след това да актуализира няколко компонента с едно преминаване. React не гарантира, че промените в състоянието се прилагат незабавно.
React JS синхронен ли е или асинхронен?
На първо място, да, е асинхронно.