React ⚛️
October 11, 2023
Пакетная обработка изменений состояния в React (batching)
Определение
Пакетная обработка позволяет группировать все изменения состояний setState
и вызывать для них только один рендер.
Логика пакетной обработки зависит от версии react
:
17 версия
Асинхронный код await
setTimeout
меняет логику пакетной обработки — каждый вызов setState
после асинхронного кода будет вызывать рендер.
18 версия
Вызов асинхронного кода не изменяет логику работы batching
— все вызовы setState
после асинхронного кода будут объединяться и вызывать только один рендер.
Поведение можно изменить с помощью flushSync
Принимает аргументом функцию, которая содержит setState
'ы для которых нужно будет вызвать отдельный рендер.
flashSync( () => { setState1() setState2() } )
October 11, 2023, 11:09
0 views
0 reactions
0 replies
0 reposts