Z podstawowego samouczka Angulara wydaje się, że wystarczy pobrać JSON z API i wyświetlić go. Jest też podwójna magia wiązania.
Ale dlaczego miałbym go używać zamiast rozwiązania zaplecza (takiego jak Rails), które buduje widok w backendie i podaje go użytkownikowi, mając już wszystko na swoim miejscu? Jakie są przypadki użycia?
Angular pomaga uporać się ze złożonością związaną z bogatymi interfejsami użytkownika. Wraz ze wzrostem złożoności interfejsu użytkownika tradycyjny model generowania stron na serwerze staje się coraz bardziej złożony. Angular pozwala rozłożyć interfejs użytkownika na porcje do zarządzania i pozwala oddzielić interfejs użytkownika od implementacji. To sprawia, że generowanie strony po stronie serwera jest znacznie łatwiejsze, ale Angular naprawdę sprawdza się, gdy przejdziesz do aplikacji opartych na javascript. Dobrym przykładem takiej aplikacji jest Trello .
Długa historia
Angular nie jest tak naprawdę ukierunkowany na strony, które można wygodnie wdrożyć, generując wszystko na serwerze i przesyłając je dalej. Ponadto, chociaż jest to całkowicie dobre podejście, które działa w przypadku wielu witryn i aplikacji w Internecie, staje się coraz bardziej skomplikowane (a zatem trudne), aby utrzymać to podejście podczas próby zwiększenia poziomu interaktywności w witrynie.
W ostatecznym rozrachunku rozwiązujesz ten problem, popychając interfejs użytkownika coraz bardziej w stronę równania JavaScript. Angular pozwala rozbić interfejs użytkownika na komponenty, zapewniając wyraźną separację między wyglądem i działaniem. Następnie można budować dość proste strony na serwerze, a interfejs JS służy do tworzenia bogatego interfejsu użytkownika, który wykonuje osobne połączenia z powrotem do serwera w celu uzyskania potrzebnych danych.
Jest jednak moment, w którym wszystko, co chcesz zrobić, to serwer strony pośredniczącej, która ładuje aplikację całkowicie opartą na javascript. Prawdopodobnie najbardziej znanym przykładem tego rodzaju przypadku użycia, w którym Angular naprawdę świeci, jest Trello (używa Szkieletu, nie Angulara, ale jest to ten sam przypadek użycia). Istnieje strona http://builtwith.angularjs.org/ która zawiera więcej przykładowych witryn korzystających z Angulara.
Więc krótka odpowiedź? Angular ułatwia tworzenie bogatych, wysoce interaktywnych interfejsów użytkownika, pozwalając na rozkład interfejsu użytkownika na komponenty i ostatecznie przejście na javascript.
Sodes AngularJ nie zapewniają wyraźnego oddzielenia wyglądu, dotyku i logiki.
rsman
13
@rsman, oczywiście. Cały sens wiązania danych polega na tym, że nie piszesz całego kodu manipulacji DOM, angular robi to za Ciebie, ergo, określasz, jak to wygląda, określasz, jak działają twoje interakcje itp., Ale unikasz konieczność połączenia tych dwóch z kodem, który aktualizuje to, jak to wygląda, z kodu obsługującego interakcje.
@ jamesstoneco rzeczywiście tak nie jest, po prostu użyłem Trello jako przykładu aplikacji JS wyłącznie po stronie klienta. Był to jeden z pierwszych, który zrobił to dobrze.
guysherman
7
Chodzi o tworzenie bardziej responsywnych interfejsów użytkownika. Podwójne wiązanie, wstrzykiwanie zależności itp. Umożliwia dość łatwe tworzenie stron dynamicznych. Możesz pisać dyrektywy w Angular, co daje deklaratywny sposób na zbudowanie widoku.
Na przykład w bieżącym projekcie mamy widok, który wykorzystuje kilkaset wierszy kodu JavaScript, aby zapewnić wrażenia użytkownika. Mimo to strona jest nieco błędna i bardzo trudna w utrzymaniu. Zaczęliśmy rozglądać się za lepszą opcją i spojrzeliśmy na backbone.js i knockout.js. W końcu próbowaliśmy Angulara. Byliśmy w stanie stworzyć znacznie bardziej responsywną i łatwą w utrzymaniu stronę za pomocą zaledwie kilku linii kodu. Zniknął cały kod manipulacji DOM. Zniknęły wszystkie niezgrabne kreacje widoku zaplecza, które trzeba było pobrać i wstawić w odpowiednich miejscach. Zniknął cały kod napisany w celu synchronizacji modelu i widoku. Dzięki temu doświadczeniu decyzja o przeprowadzce do Angulara stała się łatwiejsza i do tej pory nie żałowaliśmy.
„Zniknął cały kod manipulacji DOM”. To jest najważniejsze w mojej opinii.
Zgięty
5
Angular służy do tworzenia aplikacji jednostronicowych, pomaga zapewnić solidny szkielet aplikacji. Jest również dobry w przypadku formularzy, a nie tak dobrze w przypadku złożonych zatłoczonych interfejsów użytkownika z dużą ilością danych. Dwukierunkowe wiązanie danych jest na początku „magiczne”, ale należy pamiętać, że najnowsze frameworki (w tym sam Angular 2) odchodzą od dwukierunkowego powiązania danych w celu uproszczenia przepływu danych / przepływu zdarzeń w górę (mówiąc, że historia byłaby tutaj zbyt długa).
Muszę też cię ostrzec, że Angular nie ma określonego sposobu robienia rzeczy i czasami oferuje zbyt wiele sposobów na skórowanie kota, co może uczynić krzywą uczenia się bardziej stromą. Jeśli chcesz skalować aplikację Angular, musisz zrozumieć jej wewnętrzną mechanikę i możliwy wpływ na wydajność. Gdy to zrobisz i kiedy ustalisz spójne, solidne wzory, niebo będzie granicą. Ale musisz poświęcić temu czas.
To powiedziawszy, twoje pytanie wydaje się dotyczyć raczej przypadków użycia SPA niż samego Angulara.
Przypadki użycia aplikacji jednostronicowych dotyczą posiadania aplikacji internetowych z solidnym interfejsem użytkownika / interfejsem użytkownika i ogólnie lepszej obsługi aplikacji. Nie trzeba ponownie ładować strony, co pozwala zaoszczędzić czas i przepustowość renderowania. Oddzielasz także dane i prezentację, co jest niesamowite. Twoja aplikacja staje się:
Chodzi o tworzenie bardziej responsywnych interfejsów użytkownika. Podwójne wiązanie, wstrzykiwanie zależności itp. Umożliwia dość łatwe tworzenie stron dynamicznych. Możesz pisać dyrektywy w Angular, co daje deklaratywny sposób na zbudowanie widoku.
Na przykład w bieżącym projekcie mamy widok, który wykorzystuje kilkaset wierszy kodu JavaScript, aby zapewnić wrażenia użytkownika. Mimo to strona jest nieco błędna i bardzo trudna w utrzymaniu. Zaczęliśmy rozglądać się za lepszą opcją i spojrzeliśmy na backbone.js i knockout.js. W końcu próbowaliśmy Angulara. Byliśmy w stanie stworzyć znacznie bardziej responsywną i łatwą w utrzymaniu stronę za pomocą zaledwie kilku linii kodu. Zniknął cały kod manipulacji DOM. Zniknęły wszystkie niezgrabne kreacje widoku zaplecza, które trzeba było pobrać i wstawić w odpowiednich miejscach. Zniknął cały kod napisany w celu synchronizacji modelu i widoku. Dzięki temu doświadczeniu decyzja o przeprowadzce do Angulara stała się łatwiejsza i do tej pory nie żałowaliśmy.
źródło
Angular służy do tworzenia aplikacji jednostronicowych, pomaga zapewnić solidny szkielet aplikacji. Jest również dobry w przypadku formularzy, a nie tak dobrze w przypadku złożonych zatłoczonych interfejsów użytkownika z dużą ilością danych. Dwukierunkowe wiązanie danych jest na początku „magiczne”, ale należy pamiętać, że najnowsze frameworki (w tym sam Angular 2) odchodzą od dwukierunkowego powiązania danych w celu uproszczenia przepływu danych / przepływu zdarzeń w górę (mówiąc, że historia byłaby tutaj zbyt długa).
Muszę też cię ostrzec, że Angular nie ma określonego sposobu robienia rzeczy i czasami oferuje zbyt wiele sposobów na skórowanie kota, co może uczynić krzywą uczenia się bardziej stromą. Jeśli chcesz skalować aplikację Angular, musisz zrozumieć jej wewnętrzną mechanikę i możliwy wpływ na wydajność. Gdy to zrobisz i kiedy ustalisz spójne, solidne wzory, niebo będzie granicą. Ale musisz poświęcić temu czas.
To powiedziawszy, twoje pytanie wydaje się dotyczyć raczej przypadków użycia SPA niż samego Angulara.
Przypadki użycia aplikacji jednostronicowych dotyczą posiadania aplikacji internetowych z solidnym interfejsem użytkownika / interfejsem użytkownika i ogólnie lepszej obsługi aplikacji. Nie trzeba ponownie ładować strony, co pozwala zaoszczędzić czas i przepustowość renderowania. Oddzielasz także dane i prezentację, co jest niesamowite. Twoja aplikacja staje się:
źródło