Wpis z mikrobloga

via Wykop Mobilny (Android)
  • 0
Mirki pisze sobie appke szachowa i mam problem ze w wielu komponentach potrzebuje state i np z childa do parenta pare poziomow wyzej przekazywać cały czas to chyba zle bo sie robi syf w kodzie, czy w takim wypadku używać np takiego reduxa? Czy może za duża jest to kobyla i cos innego?
#react #javascript #programowanie #redux #js
  • 25
  • Odpowiedz
@throaway: Użyj context tak jak kolega wyżej wspomina, bardzo prosto i przyjemnie się używa, bez jakiś wielkich reducerów, dispatchów, akcji, po prostu definiujesz sobie stan w jakimś komponencie najwyżej ustawionym, a potem którykolwiek komponent sięga po ten stan, lub aktualizuje go. Bez przekazywania propów, bez syfu
  • Odpowiedz
@throaway: Context to #!$%@? i w 90% przypadków użycia nie powinien zostać użyty, zwłaszcza jeśli masz dużą listę dzieci. Jeśli masz szachownicę, context provider gdzieś wyżej i każde pole używa contextu, to jakakolwiek zmiana w tym kontekście przerenderuje ci całe drzewko, nawet jeśli masz memo. Tzn zmieniasz coś co dotyczy tylko pola nr1, ale przerenderuje się cała szachownica, 64 pola. Z reduxem możesz przerenderować tylko to co trzeba.

Poza tym
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@Aryze: logike szachów mi obsługuje chess.js,bardziej chodzi o duperele typu różne menu sidebary statystyki i inne gówienka które potrzebują info z sytuacji na boardzie i odwrotnie
  • Odpowiedz
@throaway: To i tak @redux/toolkit. Context jest tylko do rzeczy które się nie zmieniają (theme, język), albo zmieniają bardzo rzadko. Tzn context też zadziała, zwłaszcza jeśli masz jakiś mały szybki projekcik, ale poprawne rozwiązanie (dzięki któremu też się więcej nauczysz) to redux
  • Odpowiedz
poniekąd tak to wygląda jak opisał @Aryze, przynajmniej na ten moment.

Redux to nie znowu wielka kobyła, jego założenie jest prostsze niż opisuje się na forach - jako znajomość technologii której boją się juniorzy. Mi Redux ułatwił pracę, jego założenie jest dość proste i jak walczyłeś wcześniej z niemutowalnością statu, to praca stanie się prostsza.

Też bym celował w toolkit
  • Odpowiedz
@krzykrzy1995: Po co pisac w reduxie skoro react sam w sobie udostepnia context api? Redux to dodatkowa zaleznosc to raz i dosc pogmatwany mechanizm reducerow, selectorow itd. Skoro mozna to samo uzyskac latwiej to po co dodatkowa biblioteka?
  • Odpowiedz
  • 0
@lobo tak, ale generalnie sprawdź co konkretnie przekazują do tego contextu. Bo nie jest to po prostu state i dispatch zwrócony z useReducer.

I teraz zadaj sobie pytanie, czy ktoś kto nigdy nie miał do czynienia z reduxem / alternatywami, będzie w stanie skorzystać z contextu w taki sposób, by nie powodować niepotrzebnych rerenderów. Nikt nie twierdzi, że context jest złym rozwiązaniem, ale w przypadku osoby bez większego doświadczenia z
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@throaway: masz źle wydzielone warstwy, wina leży po stronie architektury I podziału obowiązków kodu, powinieneś mieć kontener z pionkami i to kontener powinien im dawać znać czy powinny siebie uwalić (zbicie) czy przesunąć na inne pole.
  • Odpowiedz