Jedną z najbardziej innowacyjnych cech React jest koncepcja Wirtualnego DOM (Document Object Model). Aby zrozumieć jego znaczenie, musimy najpierw zrozumieć problem, który rozwiązuje.
Wyobraź sobie, że DOM przeglądarki to ogromna mapa gwiezdna, na której każda gwiazda, planeta i stacja kosmiczna musi być precyzyjnie umieszczona. Każda aktualizacja tej mapy jest kosztowna - wymaga ponownego przeliczenia pozycji wszystkich obiektów.
W tradycyjnym podejściu, gdy użytkownik wykonuje akcję (np. klika przycisk), przeglądarka musi:
To jak przeprojektowywanie całego statku kosmicznego, gdy chcesz tylko zmienić kolor jednego przycisku na panelu sterowania!
React wprowadził rewolucyjne podejście:
To jak posiadanie holograficznej makiety statku kosmicznego, na której planujesz zmiany i testujesz je, zanim wprowadzisz je do prawdziwego statku. Ten proces jest niewiarygodnie efektywny, szczególnie w złożonych aplikacjach, gdzie wiele elementów może zmieniać się jednocześnie.
Rozważmy prosty przykład: mamy listę zadań do wykonania, a użytkownik właśnie oznaczył jedno zadanie jako ukończone.
W tradycyjnym podejściu:
Z React i Virtual DOM:
Virtual DOM działa na kilku poziomach:
1// Ten kod JSX
2<div className="task-list">
3 <Task completed={true} name="Zadanie 1" />
4 <Task completed={false} name="Zadanie 2" />
5</div>
6
7// Jest przekształcany w strukturę podobną do tej (uproszczone)
8{
9 type: 'div',
10 props: {
11 className: 'task-list',
12 children: [
13 {
14 type: Task,
15 props: { completed: true, name: 'Zadanie 1' }
16 },
17 {
18 type: Task,
19 props: { completed: false, name: 'Zadanie 2' }
20 }
21 ]
22 }
23}Zalety tego podejścia są ogromne:
Od wersji React 16, wprowadzono nową implementację algorytmu reconciliation o nazwie Fiber. Ta architektura umożliwia:
Ta ewolucja Virtual DOM pokazuje, jak React nieustannie rozwija swoje kluczowe technologie, aby sprostać wyzwaniom nowoczesnych aplikacji internetowych.