Можно ли использовать несколько TransitionLanes в React?Javascript

Форум по Javascript
Ответить
Anonymous
 Можно ли использовать несколько TransitionLanes в React?

Сообщение Anonymous »

Пожалуйста, не будьте слишком строги, я пытаюсь понять механику библиотеки React.
Я просматривал исходный код библиотеки React и наткнулся на что-то под названием Дорожки. Я обнаружил, что Дорожки используются для определения приоритета рендеринга компонентов в приложении. React также содержит как минимум 31 бит такого состояния.
Они расположены здесь: https://github.com/facebook/react/blob/ ... berLane.js
Как правило, код React чаще всего использует SyncLane и DefaultLane. Их битовые значения следующие:

Код: Выделить всё

const SyncLane: Lane = 0b0000000000000000000000000000010;
const DefaultLane: Lane =  0b0000000000000000000000000100000;
Но с появлением useTransition результирующий исходный код теперь содержит следующий набор битовых значений:

Код: Выделить всё

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;
Исходя из этого, логично предположить, что с помощью такого API, как useTransition, мы можем использовать несколько полос одновременно, но как? Может ли кто-нибудь, кто разбирается в этой теме, рассказать мне, как этого добиться?
Итак, по моему мнению, логика этого примера должна быть следующей:
  • Например, в приложении есть два места, которые используют startTransition.
  • Если вы взаимодействуете с этими частями достаточно быстро, битовая маска будет выглядеть так: TransitionLane1 | TransitionLane2 === 0b0000000000000000000011000000000
  • Затем должен выполниться самый ранний startTransition, который установил свой бит в маске приоритета рендеринга.
  • Затем будет выполнен самый последний startTransition.
Я пока не знаю, как это написать на React (видимо, я что-то упускаю).
P.S. Мне любопытно, как работает код библиотеки (на случай, если кому-то интересно, почему я об этом спрашиваю).

Подробнее здесь: https://stackoverflow.com/questions/798 ... s-in-react
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»