Wpis z mikrobloga

Mam komponent listy; która jako props dostaje listę podpowiedzi, ale jeśli nie to sama pobiera to co będzie sugerować. Sęk w tym, że robi mi to dużo DoSów bo pobieranie jest przy montowaniu; chciałbym żeby były to dane pobrane raz z jakimś timestampem żeby nie mulić serwera; może warto zapisywać do w localStorage?

Szukam jakiegoś wzorca a projektowego do tego; jak tu pobrać raz na jakiś czas dane; zachować elastyczność pod tytułem: nie muszę przekazywać danych od rodzica do dzieci; bo komponent użyje cache lub pobierze ale tylko 1 raz.

#react #programowanie #javascript #programista15k
  • 6
  • Odpowiedz
może warto zapisywać do w localStorage?


@pyroxar: Nie warto. Użyj React Query. RQ oferuje funkcjonalność, której potrzebujesz. Swego czasu (2015-20) popularne było podejście, gdzie browser pobierał dane, dokonywał transformacji i udostępniał je przez Redux store. React Query mocno usprawnił ten proces i wyeliminował potrzebę ręcznego zapisu danych w przeglądarce.
  • Odpowiedz
@pyroxar: Zależnie jak masz apke zrobioną możesz do tego podejść na 2 sposoby:
1. Robisz sobie kontekst w top apki i tam sobie trzymasz te dane i kontekstu używasz w dziecku
2. Robisz sobie (albo używasz gotowej biblioteki) wrappera dla fetcha który przyjmuje te same parametry co fetch + jeden dodatkowy, a mianowicie czas trzymania danych w cache, następnie robisz sobie jakąś mapę dostępną z tej metody (ale nie w scope
  • Odpowiedz
@pyroxar: Widze tu pare problemow:

1. Przefiltrowana lista nie musi byc stanem, nie musisz w ogole miec tego useEffecta na setowanie przefiltrowanej listy, mozesz to zrobic w ciele funkcji po prostu. Odpada Ci pare rerenderow
2. Wydaje sie niepotrzebnym duplikowanie stanu dla sugestii. Skoro przekazujesz je jako props to powinienes na poziomie tamtego komponentu (rodzica) je fetchowac a lista powinna je jedynie wyswietlac. I tu jest Twoj glowny problem - przekazywana
  • Odpowiedz