Hej, natknąłem na lekki problem w moim kodzie, mam metodę która odpowiada za pare zmian w widoku, jakieś proste flagi typu isFormLoading = true, poza tym metoda ma w sobie metodę post a w tapie zmiana flagi isFormLoading na false, problem jest taki, że ta metoda będzie powtarzana w 10 komponentach ale jest możliwość, że np. w 3 z nich zachowanie ulegnie małym zmianom i będzie trzeba dopisać parę linijek kodu. Pytanie teraz brzmi tak: Czy warto to wynosić do jakiegoś serwisu i czy w ogóle powinienem to w taki sposób ogrywać bo w metodzie jest jednak api call, jak byście do tego podeszli, zostawiać? ;)
Reusable method w angularze
Wątek przeniesiony 2023-09-27 10:44 z JavaScript przez Riddle.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 10227
No wiadomo że powinieneś to wynieść. Calle do API i tak nie powinny być bezpośrednio w komponencie.
- Rejestracja: dni
- Ostatnio: dni
a co te isFormLoading robi? Jeśli pokazuje jakiś spinner na czas ładowania to może warto to opakować w komponent który będzie się tym zajmował, renderował właściwą treść jako ngContent i wyświetlał tę treść zastępczą w czasie ładowania (ew. wyłączał formularz)
- Rejestracja: dni
- Ostatnio: dni
- Postów: 8487
Mateuszto napisał(a):
Hej, natknąłem na lekki problem w moim kodzie, mam metodę która odpowiada za pare zmian w widoku, jakieś proste flagi typu isFormLoading = true, poza tym metoda ma w sobie metodę post a w tapie zmiana flagi isFormLoading na false,
Czemu tak imperatywnie? Myślałem, że w Angularze się korzysta z obserwabli z Rx.js, które emitują kolejne wartości w czasie, a nie lata z flagami i zmienia widoki na żywca. Jak zwierzęta xD
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Poznań
- Postów: 163
Nie zawsze warto używać observabli do prostego ngifa, dodatkowy kod, nextowanie wartośći i jeszcze zwrócenie jako observable np, subjecta ;) Szkoda zachodu. Ogólnie temat ogarnięty i przez specyfike projektu nie da rady tego w fajny sposób wydzielić, w sensie dałoby ale za dużym effortem więc zostawiam
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Poznań
- Postów: 163
@LukeJL: Poza tym czekam za angularem 16, wtedy może fajnie takie rozwiązania w komponencie będzie można ograć signalsami, teraz najlepsze rozwiązanie to prosta flaga + detectChanges ewentualne jeśli potrzeba. Jeśli miałbym komunikacje między komponentami to spoko użyłbym jakiegoś subjecta i po sprawie + Jak zwierzęta? To daj inny pomysł który będzie lepszy
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Warszawa
- Postów: 2255
małym zmianą => "małym zmianom" - proszę, na litość boską nauczcie się odmieniać słowa przez przypadki, już nawet ortografy czy brak interpunkcji są lepsze niż ta abominacja.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 847
To daj inny pomysł który będzie lepszy -> React / Vue, wydzielasz funkcjonalność do osobnego pliku w postaci hooka i możesz sobie robić z tym co chcesz.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Poznań
- Postów: 163
Przeczytaj najpierw co napisalem, problem z reużyciem tego jest taki, że są tam calle do api, masz tak dobre DI w vue czy reakcie? Niexd proszę cię
- Rejestracja: dni
- Ostatnio: dni
- Postów: 57
Takim refaktoringiem (gdzie powtarza ci się praktycznie 1 linijka i każde zachowanie może wyglądać inaczej) narobisz sobie więcej problemów niż przyniesie to pożytku.
Zazwyczaj jeśli masz wątpliwości czy coś wymaga refaktoringu to prawdopodobnie ten refaktoring wcale nie jest wymagany.