JS/Angular - zwracania obiektów (po co stosować kopiowanie we froncie?)

JS/Angular - zwracania obiektów (po co stosować kopiowanie we froncie?)
J1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 30
0

Przerabiam kurs na udemy z angularem (https://www.udemy.com/course/the-complete-guide-to-angular-2/)

Mam dany model, np.

Kopiuj
Car {
brand: string;
}

Serwis, który zwraca tablicę Car[]

Kopiuj
getCars(): Car[] {
return this.cars.splice();
}

Jak widać, zwróciłem kopię mojego obiektu cars, autor powiedział, że mimo tego nie jest błędem zwrócić this.cars.

Zastanawiam się czy to nie jest trochę overengineering autora bo jeszcze w back-endzie mogę zrozumieć. Jaką macie opinie na ten temat?

bakunet
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 1683
0

A gdzie deklarujesz cars? A może przekazujesz do konstruktora? I czy bez this kompilator wie co którą tablicę Ci chodzi?

Schadoow
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1082
0

Kopiowanie w angularze wykorzystuje się jak na siłę ktoś ci powiedział używaj OnPush strategy bo to panie szybciej działa ale nie rozumiesz koncepcji więc, żeby działało to robisz klony aby zmieniła się referencja do obiektu i wykrata została zmiana.

VE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 160
1

Po to żebyś w komponencie który tego serwisu używa nie zrobił czegoś takiego:

Kopiuj
this.carsService.getCars().length = 0;

a raczej żeby nie miało to złych konskwencji np. w innych miejscach bo zrobić tak nadal możesz

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.