Я просматривал исходный код библиотеки React и наткнулся на что-то под названием Дорожки. Я обнаружил, что Дорожки используются для определения приоритета рендеринга компонентов в приложении. React также содержит как минимум 31 бит такого состояния.
Они расположены здесь: https://github.com/facebook/react/blob/ ... berLane.js
Как правило, код React чаще всего использует SyncLane и DefaultLane. Их битовые значения следующие:
Код: Выделить всё
const SyncLane: Lane = 0b0000000000000000000000000000010;
const DefaultLane: Lane = 0b0000000000000000000000000100000;
Код: Выделить всё
const TransitionLanes: Lanes = 0b0000000001111111111111100000000;
const TransitionLane1: Lane = 0b0000000000000000000000100000000;
const TransitionLane2: Lane = 0b0000000000000000000001000000000;
const TransitionLane3: Lane = 0b0000000000000000000010000000000;
const TransitionLane4: Lane = 0b0000000000000000000100000000000;
const TransitionLane5: Lane = 0b0000000000000000001000000000000;
const TransitionLane6: Lane = 0b0000000000000000010000000000000;
const TransitionLane7: Lane = 0b0000000000000000100000000000000;
const TransitionLane8: Lane = 0b0000000000000001000000000000000;
const TransitionLane9: Lane = 0b0000000000000010000000000000000;
const TransitionLane10: Lane = 0b0000000000000100000000000000000;
const TransitionLane11: Lane = 0b0000000000001000000000000000000;
const TransitionLane12: Lane = 0b0000000000010000000000000000000;
const TransitionLane13: Lane = 0b0000000000100000000000000000000;
const TransitionLane14: Lane = 0b0000000001000000000000000000000;
Итак, по моему мнению, логика этого примера должна быть следующей:
- Например, в приложении есть два места, которые используют startTransition.
- Если вы взаимодействуете с этими частями достаточно быстро, битовая маска будет выглядеть так: TransitionLane1 | TransitionLane2 === 0b0000000000000000000011000000000
- Затем должен выполниться самый ранний startTransition, который установил свой бит в маске приоритета рендеринга.
- Затем будет выполнен самый последний startTransition.
P.S. Мне любопытно, как работает код библиотеки (на случай, если кому-то интересно, почему я об этом спрашиваю).
Подробнее здесь: https://stackoverflow.com/questions/798 ... s-in-react
Мобильная версия