Redux - zapamiętywanie State (React)

0

Piszę aplikację webową z użyciem m.in. React Router, Redux i axios (w celu ich nauki).
Na obecną chwilę zaimplementowałem sobie logowanie, widoki, itd... oraz co ważne metody GET, POST, PUT oraz DELETE do operowania danymi.
Korzystam z Redux DevTools, przeglądam sobie jak działają akcje, jak zmienia się State, przechodzę sobie po różnych adresach (router/redirect), widzę gdzie pojawiają się różnice...
... i kiedy odświeżam widok (przeładowanie strony w przeglądarce) to wszystko ("fetchowane" dane) poza tokenem, flagą ładowania i aktualnym wynikiem żądania znika.

Chciałbym zatem zapytać, bo się zawiesiłem i nie wiem jak mam dalej pisać aplikację...
0). Powinienem nie dopuścić do gromadzenia się tych danych w State?
1). Czy takie "wyczyszczenie" State przez odświeżenie widoku jest właściwe dla aplikacji opartych o Redux?
2). Jeśli nie, to jakich narzędzi powinienem użyć do zapamiętywania tych danych do momentu wylogowania?

1

Też jestem na etapie takiej nauki, ale według mnie to:
0 - Być może nie musisz wszystkiego trzymać w state
1 - Jak odświeżasz (np F5) to wszystko jest inicjalizowane na nowo więc state jest czysty
2 - Jakie dane chcesz zapamiętać i w jakim celu?

0

Dziękuję za odpowiedzi, mam jednak wrażenie, że troszkę nadajemy na różnych falach, że o co innego pytałem, a o czym innym dostałem odpowiedź... Może źle to wytłumaczyłem?

szydlak napisał(a):

0 - Być może nie musisz wszystkiego trzymać w state

Właśnie o to chciałem zapytać: na podstawie czego uznać, że dane mają pozostać w State? Skąd mam o tym wiedzieć, np. fetchowanie przy każdym widoku, wiedząc, że część tych danych i tak się nie zmieni, a występują często w aplikacji i lepiej zostawić ich w State?

szydlak napisał(a):

1 - Jak odświeżasz (np F5) to wszystko jest inicjalizowane na nowo więc state jest czysty

Właśnie o tym pisałem:

taktyczny-komentarz napisał(a):

... i kiedy odświeżam widok (przeładowanie strony w przeglądarce) to wszystko ("fetchowane" dane) poza tokenem, flagą ładowania i aktualnym wynikiem żądania znika.

Miałem na myśli, czy takie wyczyszczenie State spotyka się w większych aplikacjach?

szydlak napisał(a):

2 - Jakie dane chcesz zapamiętać i w jakim celu?

Pamiętam token i flagę ładowania, pierwsze z uwagi na uwierzytelnianie, drugie aby sprawdzić, czy dane zostały już pobrane.
Używam do tego localStorage, ale widziałem rozwiązania typu redux-persist i chciałem zapytać czego używa się w większych projektach.
Ale przykład podałem wyżej po co miałbym pamiętać State (oprócz tokena i flagi).

0

Jeśli muszę przesyłać pobrane dane do innych komponentów to raczej używam state.
Na wyczyszczenie state przy odświeżeniu nie masz wpływu.

Mam wrażenie, że mylisz State z localstorage. W localstorage token jak najbardziej. Flaga ładowania bardziej pasuje do tego, żeby ją trzymać w State.
Ja ostatnio, pisząc apkę to mam wrażenie, że ten redux jest mi coraz mniej potrzebny. Wystarczyłby state w komponencie. Ale wszystko zależy od tego co chcesz osiągnąć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1