← Wszystkie tematy

Pytania rekrutacyjne z zarządzania stanem (Senior) z odpowiedziami

75 pytań na rozmowę rekrutacyjną z tematu Zarządzanie stanem (Senior) - z poprawnymi odpowiedziami, wyjaśnieniami i linkami do dokumentacji.

Rozwiąż ten test
  1. 1.Dlaczego Redux, Zustand i podobne biblioteki subskrybują przez useSyncExternalStore?
  2. 2.Co jest nie tak z tym getSnapshot?
  3. 3.Jaka jest różnica między modelem „subskrypcji selektora” (Redux, Zustand) a Contextem?
  4. 4.Gdzie w aplikacji z routingiem najlepiej trzymać stan filtra listy (wyszukiwanie, sortowanie, strona)?
  5. 5.Jaka klasyfikacja stanu pomaga wybierać narzędzia w dużej aplikacji?
  6. 6.Jak sprawić, by konsumenci CartContext używający tylko akcji w stylu dispatch nie renderowali się ponownie?
  7. 7.Dlaczego providery Contextu w Next.js App Router wydziela się do osobnego komponentu klienckiego?
  8. 8.Dlaczego „jeden duży AppContext z całym stanem” uważa się za antywzorzec?
  9. 9.Co dodaje use(Context) w React 19 w porównaniu z useContext?
  10. 10.Do czego służy createListenerMiddleware?
  11. 11.Co dodaje combineSlices w Redux Toolkit?
  12. 12.Dlaczego do store'a Reduxa nie wkłada się promise'ów, instancji klas i funkcji?
  13. 13.Czego potrzebuje zmemoizowany selektor z createSelector, by był wydajny z argumentami?
  14. 14.Dlaczego Redux zaleca strukturę „ducks”/folderów według funkcji z createSlice?
  15. 15.Reducer dla orders/placed musi też wyczyścić slice koszyka. Jak zrobić to idiomatycznie?
  16. 16.Czym grozi store Zustand na poziomie modułu przy SSR (Next.js)?
  17. 17.Jak zapisywać tylko część pól store'a Zustand i obsługiwać zmiany schematu?
  18. 18.Jak reagować na zmiany w Zustand poza Reactem (np. synchronizować z SDK analityki)?
  19. 19.Co daje store'owi Zustand middleware devtools?
  20. 20.Zustand czy Redux Toolkit: kiedy RTK jest mocniejszym wyborem?
  21. 21.Jak zaimplementować optymistyczną aktualizację przez cache w TanStack Query?
  22. 22.Czym jest structural sharing w TanStack Query?
  23. 23.Dlaczego zaleca się fabryki kluczy zapytań?
  24. 24.Jak przekazać dane TanStack Query pobrane wcześniej na serwerze do komponentów klienckich w Next.js App Router?
  25. 25.Dlaczego na serwerze nie wolno tworzyć jednego globalnego QueryClient dla wszystkich żądań?
  26. 26.Co zmienia useSuspenseQuery?
  27. 27.Co trzeba skonfigurować dla useInfiniteQuery?
  28. 28.Jak w TanStack Query anulować trwające żądanie, gdy przestało być potrzebne?
  29. 29.Co daje opcja select w useQuery?
  30. 30.Jak zrobić optymistyczną aktualizację w RTK Query?
  31. 31.Jak RTK Query decyduje, które zapytania pobrać ponownie przy tagach z id?
  32. 32.Do czego w endpoincie RTK Query używa się transformResponse?
  33. 33.Jak zapisać wynik mutacji bezpośrednio do zapytania w cache bez ponownego pobierania (aktualizacja pesymistyczna)?
  34. 34.Czy RTK Query i stan createSlice mogą współistnieć w jednym store?
  35. 35.Jak zrobić optymistyczną aktualizację przez mutate w SWR?
  36. 36.Co daje useSWRMutation w porównaniu z wywołaniem fetch, a potem mutate?
  37. 37.Jak SWR unika renderu komponentu, gdy zmieniają się niezwiązane z nim pola odpowiedzi?
  38. 38.Jak przekazać do SWR dane pobrane na serwerze, by były dostępne przy pierwszym renderze klienta?
  39. 39.SWR czy TanStack Query: które porównanie jest uczciwe?
  40. 40.Dlaczego mówi się, że loadery tras eliminują „kaskady żądań” w porównaniu z pobieraniem w useEffect?
  41. 41.Jak nie uruchamiać ponownie loadera po każdym action na stronie?
  42. 42.Jak zbudować optymistyczne UI z fetcherem w React Router?
  43. 43.Jak strumieniować wolne, niekrytyczne dane z loadera React Router?
  44. 44.Czy przy loaderach React Router potrzebna jest biblioteka cache klienta (TanStack Query)?
  45. 45.Jak błędy walidacji z action React Router powinny trafiać do formularza?
  46. 46.Aplikacja legacy trzyma odpowiedzi API w slice'ach Reduxa z ręcznymi flagami ładowania. Jaka migracja jest pragmatyczna?
  47. 47.Jak zsynchronizować stan klienta dwóch kart przeglądarki (np. wylogowanie w jednej karcie)?
  48. 48.Jakie jest główne ryzyko kopiowania danych serwerowych z useQuery do store'a Zustand/Redux?
  49. 49.Jakie podejście sprawia, że logikę stanu najłatwiej testować jednostkowo, niezależnie od biblioteki?
  50. 50.Kiedy maszyna stanów (np. XState) jest lepsza niż reducer z flagami?
  51. 51.Jak zapisywać aktualizacje z WebSocketa do wpisu bufora RTK Query?
  52. 52.Jak zrealizować nieskończone przewijanie z jednym wpisem bufora RTK Query?
  53. 53.Co daje utrwalanie bufora TanStack Query (persistQueryClient) i na co uważać?
  54. 54.Co dzieje się z zapytaniami TanStack Query, gdy przeglądarka przechodzi w offline (domyślnie networkMode: 'online')?
  55. 55.Co jest nie tak z tą aktualizacją bufora?
  56. 56.Jak konfigurować komponenty z TanStack Query w testach?
  57. 57.Jak dać każdej instancji złożonego widżetu własny store Zustand?
  58. 58.Jak reagować na bardzo częste zmiany w Zustand (np. pozycję wskaźnika 60 razy na sekundę) bez ponownych renderów?
  59. 59.Jak wydajnie zrealizować undo/redo dla stanu dużego dokumentu?
  60. 60.Po co walidować stan z URL (parametry wyszukiwania) schematem?
  61. 61.Po co wysyłać klucz idempotencji z optymistycznym żądaniem „utwórz zamówienie”, które może zostać ponowione?
  62. 62.Jak pokazać globalny wskaźnik dla wszystkich trwających fetcherów React Router (np. wielu przycisków „lubię”)?
  63. 63.Co daje opcja provider dla własnego bufora w SWR?
  64. 64.Co zwykle zmienia się dla klienckich bibliotek stanu, gdy React Server Components pobierają dane na serwerze?
  65. 65.Dlaczego React Redux implementuje useSelector na useSyncExternalStoreWithSelector?
  66. 66.Jak niezależnie wdrażane mikrofrontendy powinny dzielić stan, np. bieżącego użytkownika?
  67. 67.Kiedy pomaga useSelector(selector, shallowEqual)?
  68. 68.Jakie podejście pasuje do wspólnej edycji, gdy wielu użytkowników zmienia jeden dokument offline i online?
  69. 69.Jak zaktualizować edytowane zadanie we wszystkich buforowanych listach (przefiltrowanych widokach) naraz?
  70. 70.Dlaczego zależne zapytania mogą tworzyć kaskadę i jak ją skrócić?
  71. 71.Czym różni się staleTime: Infinity od refetchOnMount: false?
  72. 72.Kiedy szyna zdarzeń jest lepsza od wspólnego stanu do komunikacji między funkcjami?
  73. 73.Po co modelować stan asynchroniczny unią dyskryminowaną zamiast osobnych pól?
  74. 74.Co jest nie tak z providesTags: (result) => result.map(({ id }) => ({ type: "Post", id }))?
  75. 75.Gdzie przechowywać niezapisany szkic długiego formularza, by przetrwał przeładowanie lub awarię?