Czytając kod Reacta - luźne notatki 0923 (1 )

Lane. Czym jest lane?

Uliczka. Alejka. Pas ruchu.

Ale co to robi w React? I co to ma wspólnego z włóknem (fiber?)

Patrzę na kod https://github.com/facebook/react/blob/2807d781a08db8e9873687fccc25c0f12b4fb3d4/packages/react-reconciler/src/ReactFiberLane.js i myślę

.

Są tam rozmaite zmienne. Zera i jedynki. To muszą być maski bitowe!

Te alejki mają różne rodzaje.

Ale i priorytety.

Widnieje też na horyzoncie funkcja getNextLanes. Czym ona jest?


export function getNextLanes(root: FiberRoot, wipLanes: Lanes): Lanes {

Jak widzimy pobiera ona korzeń włókna oraz alejki w trakcie robienia. I zwraca alejki następne w kolejności.

Wchodząc w nią, czujemy błogość nicnierobienia. Słówko idle się pojawia w zmiennych.

Sprawdzamy, czy jesteśmy w środku renderowania, jeśli tak, to zmiana alejki może spowodować utracenie postępów. Więc róbmy tak tylko, jeśli nowe alejki mają priorytet wyższy.

Dalej komentarz o splątanych alejkach.

Przechodzimy dalej. Wokół panuje półmrok. Zbliża się głód. Funkcja o nazwie markStarvedLanesAsExpired. Oznacz zagłodzone alejki jako przeterminowane.

Dalej są kolejne funkcje. I wszystko zdaje się operować na maskach bitowych, tej zapomnianej przez frontendowców praktyce, która odżywa w internalach bibliotek.

To tyle na dzisiaj. Wiem, że mgliste to treści, ale dla mnie też to jeszcze mglistym jest. Zrozumienie przychodzi z czasem.

Komentarze

Popularne posty z tego bloga

Dlaczego nie da się nadgonić frontendu

Absurdy Rekrutacji 2023

Przygody juniora (1)