Redux - zapamiętywanie State (React)

Odpowiedz Nowy wątek
2019-08-05 01:14

Rejestracja: 11 miesięcy temu

Ostatnio: 16 godzin temu

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?

edytowany 7x, ostatnio: taktyczny-komentarz, 2019-08-05 01:33

Pozostało 580 znaków

2019-08-05 07:59

Rejestracja: 5 lat temu

Ostatnio: 2 minuty temu

Lokalizacja: Nowa Ruda

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?

Pozostało 580 znaków

2019-08-05 12:40

Rejestracja: 11 miesięcy temu

Ostatnio: 16 godzin temu

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).

edytowany 2x, ostatnio: taktyczny-komentarz, 2019-08-05 12:42

Pozostało 580 znaków

2019-08-05 15:13

Rejestracja: 5 lat temu

Ostatnio: 2 minuty temu

Lokalizacja: Nowa Ruda

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ąć.

Dzięki, może faktycznie szukam dziury w całym i mam podobne myśli co do Reduxa, że gdzieniegdzie jest zbędny... A flaga jest w State, pomyliłem się przy pisaniu posta... - taktyczny-komentarz 2019-08-05 16:33

Pozostało 580 znaków

Odpowiedz

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