Jak radzicie sobie w sytuacji, gdy komponent ma zbyt dużo funkcji (od strony końcowego użytkownika) i żeby to wszystko napisać - trzeba stworzyć klasę z 400+ liniami kodu? Przykład: multiselect. Ostatnio musiałem zaimplementować multiselecta od zera. Nie byłoby to cieżkie gdyby nie to, ile "opcji" musiał mieć taki multiselect. Wybieranie za pomocą myszki, usuwanie wybranych pozycji, wybieranie za pomocą klawiatury, focus za pomocą klawiatury na część z multiselectem, na część z opcjami (jeszcze z 10 innych funkcji by się znalazło).
Rozdzieliłem to na trzy komponenty: wybrane pozycje, możliwości do wyboru i kontener który wszystko to zawierał. W tym kontenerze była główna logika. Problem jest taki, że ten kontener ma 400 linii (testy koło 1k), lista ma koło 100, wybrane pozycje koło 200. Przez ilość linii - uważam, że bardzo ciężko się w tym poruszać, na pewno łatwiej by było jakby klasa miała po 100+-. Nie znam dużo w Reacta
, ale wiem że istnieje tam coś takiego jak Context
- tylko, że Ja mam problem z tym, że to jest w Angularze
i raczej nie znalazłem żadnego odpowiednika Contextu
. Globalny store odpada, bo to ma być reużywalny komponent.
Drugi przykład zupełnie inny. Mogą istnieć komponenty gdzie nawet jeśli Store by mógł w tym pomóc to store nie zwraca Observable
przy dispatchowaniu akcji co może być bardzo pomocne w przypadku gdy korzystamy z jakichś switchMap
i innych dobrodziejstw RxJsa
,