- https://javascript.info/
- http://exploringjs.com/
- https://developer.mozilla.org/pl/docs/Web/JavaScript
- Functional Programming in JS: What? Why? How? - zajawka
- Functional Programming in JavaScript - kurs - krótki kurs
- Szczeciński kurs Reduksa(+ Reakta)
- Dan Abramov kurs Reduksa
- Redux toolkit - RTK - guidelines i utilsy(+reselect, +flux-standard-action)
- reselect - memoizacja i utilsy
- flux-standard-action - standaryzacja akcji Reduksa(zbędne przy RTK)
- Oficjalna dokumentacja Reduksa
- Thinking in ramda - jak zacząć z ramdą i dlaczego
- Ramda - zestaw bardzo przydatnych utilsów do operacji na danych
- Crocks - jeśli potrzebujemy czegoś więcej ze świata FP
- Immutable - porównania po referencjach lub prymitywnych wartościach w połączeniu z niemutowalnym podejściem pozwalają nam robić szybkie porównania złożonych struktur bez sprawdzania poszczególnych wartości obiektów lub tablic. Jeśli preferujemy imperatywne api to możemy skorzystać z biblioteki immer
- Container - View Pattern podział w którym możemy oddzielić logikę biznesową od komponentu, a sam komponent ponownie użyć w innym miejscu
- Code structure - https://redux.js.org/faq/code-structure i https://legacy.reactjs.org/docs/faq-structure.html
- Deklaratywność - szybszy w analizie i bardziej przewidywalny kod
- Dzielenie kodu na komponenty - kiedy widzimy w dużym komponencie fragmenty kodu które nie komunikują się ze sobą, możemy spróbować je podzielić na mniejsze np. sekcja listy i filtrów listy, a w rodzicu stworzyć logikę, która wykorzystuje oba komponenty
- Grupowanie hooków - warto grupować powiązane hooki w większe, aby prościej było się zorientować w kodzie
- Unikanie niepotrzebnych re-renderów poprzez rozpakowywanie obiektów na propsy lub korzystanie z key prop
- Utrzymanie płaskiej struktury - wykonywanie zmian na storze jest zgrabniejsze i mniej problematyczne
- Dzielenie na mniejsze reducery i łączenie za pomocą combineReducers - pomaga w utrzymaniu optymalnego działania i ogranicza tworzenie zawiłej logiki
- Nie trzeba ograniczać naszych reducerów do
switch case
, możemy w nich robić wszystko co chcemy, dopóki zwracany obiekt zachowuje swój kształt - createSelector jako forma memoizacji
- Przestrzeganie Flux Standard Action - kod jest bardziej intuicyjny(zbędne jeśli korzystamy z RTK)
- create-react-app - prosty starter aby zacząć z Reaktem i Reduksem.
- Podstawowy config Webpack@5 z HMR, TS, Reduksem(który również działa z HMR) - https://github.com/Piotr-Aueternum/images-gallery
- CodeSandbox - świetna integracja z Githubem
- StackBlitz