Co oznacza zmiana obiektu przez referencję i po co kopiujemy stan?
Najpierw odpowiedz na głos lub w myślach, potem porównaj.
Odpowiedź
Gdy przypiszę jeden obiekt do dwóch zmiennych, obie mogą wskazywać ten sam obiekt. Zmiana przez jedną zmienną jest wtedy widoczna przez drugą. To inne zachowanie niż skopiowanie prostej liczby.
W React zamiast zmieniać istniejący obiekt stanu, zwykle tworzę nowy, np. {...user, name: 'Ola'}. Dzięki temu zmiana jest wyraźna i nie modyfikuję danych używanych przez wcześniejsze renderowania. Operator spread wykonuje płytką kopię: zagnieżdżony obiekt nadal może być wspólny. Jeśli zmieniam zagnieżdżone pole, kopiuję również odpowiedni poziom. Nie trzeba jednak bezmyślnie głęboko kopiować wszystkiego.
Dlaczego to ważne: Podstawa poprawnego stanu React i unikania trudnych błędów danych.
Możliwe dopytania: Czy {...object} kopiuje wszystkie zagnieżdżone obiekty?
Jak poszło? Bądź szczery — „Jeszcze nie” dodaje pytanie do powtórki.
Powiązane pytania
- Shallow copy vs deep copy — co kopiuje spread? — JavaScript
Dalsza lektura
- MDN: Closures(otwiera się w nowej karcie)Dostęp 22.10.2026. Domknięcia i dostęp funkcji do otoczenia.