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
Prześlij komentarz