169 похожих чатов

Приветствую, снова теоретический вопрос. Вот пример кода: https://codesandbox.io/s/sweet-phoebe-gj4ycp?file=/PostsTab.js Там заходим и кликаем

на кнопку Post (Slow), а потом сразу на 3 кнопку. В консоли видим, что рендеринг массива остановился, т е мы его прервали, когда нажали на 3 кнопку.
Означает ли, что вычисление для рендеринга react делает в отдельном потоке(иначе как другая кнопка вообще остается доступной)?

4 ответов

5 просмотров

нет, потоков в жс условно не существует, скорее всего реакт разбивает рендер на батчи и асинхронно их скедулит, но это не точно. ну и console.log это макротаска, которая позволяет обработчикам ивентов заскедулится вовремя. хотя и без консольлог ивент срабатывает, что для меня было странно

olkivan
нет, потоков в жс условно не существует, скорее вс...

похоже это фича React.Fiber: https://www.velotio.com/engineering-blog/react-fiber-algorithm React Fiber divides the update into units of works. It can assign the priority to each unit of work, and has the ability to pause, reuse, or abort the unit of work if not needed. React Fiber divides the work into multiple units of work, which is fiber. It schedules the work in multiple frames and uses the deadline from the requestIdleCallback. Every update has its priority defined like animation, or user input has a higher priority than rendering the list of items from the fetched data.

NIX- Автор вопроса
olkivan
нет, потоков в жс условно не существует, скорее вс...

Да, кстати, хорошая мысль, спасибо)) я что-то не подумал, что массив можно поэлементно обрабатывать, а не нахрапом)

NIX- Автор вопроса
olkivan
нет, потоков в жс условно не существует, скорее вс...

Кстати, получается , что если будет не массив а 1 компонент, но это не сработает? Сейчас проверю!

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
35
How to create an OS in C? what to study?
Linus
18
читать файл максимально быстро? странный вопрос))
zamtmn
53
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
@HemulGM Параметры у AddStream поменялись? Несостыковка какая-то
Катерина Свиридова
12
Подскажите, есть какие-то события создания/уничтожения у TFrame по типу TForm (OnCreate и OnClose/OnDestroy) ? Как отловить создание TFrame и "перед" уничтожением. На Tframe р...
Денис
8
а чем хуже?
Alexey Kulakov
10
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
1
Всем привет, передавал ли кто-нибудь File с рендер процесса в main? Просто виснет js. Где именно я без понятия. Не отрабатывают никакие логи. Как только я передаю обычный масс...
Ilya Ilya
4
Карта сайта