Wątek przeniesiony 2023-09-27 10:44 z JavaScript przez Riddle.

Reusable method w angularze

0

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ć? ;)

0

No wiadomo że powinieneś to wynieść. Calle do API i tak nie powinny być bezpośrednio w komponencie.

0

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)

1
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

0

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

0

@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

0

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.

0

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.

0

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ę

1

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.

0

Tak, właśnie pisałem wyżej, że szkoda czasu w ogóle na próbę rozwiązania czegoś takiego, może trochę kuje w oczy ale co poradzić, specyfika projektu też nie pomaga

1 użytkowników online, w tym zalogowanych: 0, gości: 1