Reusable method w angularze

Reusable method w angularze

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

Mateuszto
  • Rejestracja:około 7 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Poznań
  • Postów:163
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ć? ;)

edytowany 1x, ostatnio: Riddle
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 7 godzin
  • Lokalizacja:Koszalin
  • Postów:10094
0

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

edytowany 1x, ostatnio: Riddle
obscurity
  • Rejestracja:około 6 lat
  • Ostatnio:około 5 godzin
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)


"A car won't take your job, another horse driving a car will." - Horse influencer, 1910
Mateuszto
Nie da rady w tym przypadku tego zamknąć w jakimś dumb componencie :/
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:około 2 godziny
  • Postów:8423
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


edytowany 2x, ostatnio: LukeJL
Mateuszto
  • Rejestracja:około 7 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Poznań
  • Postów:163
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

Mateuszto
  • Rejestracja:około 7 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Poznań
  • Postów:163
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

axelbest
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 9 godzin
  • Lokalizacja:Warszawa
  • Postów:2252
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.

Xarviel
  • Rejestracja:ponad 3 lata
  • Ostatnio:3 dni
  • Postów:847
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.

Mateuszto
  • Rejestracja:około 7 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Poznań
  • Postów:163
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ę

FG
  • Rejestracja:około 5 lat
  • Ostatnio:8 dni
  • Postów:57
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.

Mateuszto
  • Rejestracja:około 7 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Poznań
  • Postów:163
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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.