Aurelia i Angular to popularne frameworki klienckie JavaScript, które umożliwiają budowanie nowoczesnych aplikacji dla sieci, urządzeń mobilnych i desktopów. Zapewniają one nowoczesne funkcje, takie jak wiązanie danych, rozszerzalny HTML, SPA, Routing, UI Composition, itp. do budowania złożonych aplikacji.
W tym wpisie na blogu próbowałem porównać Aurelię i Angular, podkreślając zalety Aurelii nad Angular wraz z zaletami i wadami obu.
Aurelia jest nienachalna, łatwa do nauki i zrozumienia dzięki filozofii „konwencja ponad konfiguracją”, wystarczy przestrzegać kilku prostych konwencji bez takich konfiguracji, jakie są wymagane w przypadku Angulara. Jego składnia jest łatwa do zapamiętania i pozwala na budowanie komponentów w Typescript i w waniliowym JavaScript również.
Aurelia i Angular, oba są oparte na podejściu komponentów i są podobne na wiele sposobów. Angular jest zasadniczo wspierany przez giganta IT Google, podczas gdy Aurelia jest rozwijana przez Roba Eisenberga i jego zespół, Eisenberg wcześniej był pracownikiem zespołu Google Angular 2, opuścił go z powodu nieporozumień i postanowił zbudować „nierzucającą się w oczy” platformę z przestrzeganiem standardów sieciowych.
Jest to jedna z zalet Aurelii. Jej podejście „konwencja ponad konfiguracją” jest tym, co czyni ją dyskretną. Nie musisz się martwić o rzeczy związane z frameworkiem, możesz skupić się przede wszystkim na logice swojej aplikacji.
W Aurelii, jeśli tworzysz komponent, nie potrzebujesz żadnego dekoratora do adnotacji komponentu, nie musisz się martwić o specyfikację metadanych, po prostu podążaj za prostymi konwencjami, a Aurelia zrobi wiele rzeczy sama.
Zobaczmy przykład. Aby utworzyć podstawowy komponent do drukowania „Hello World!”Twój komponent może mieć następujący kod typograficzny:
SzablonHTML:
Domyślny selektor dla Twojego komponentu to <hello></hello>, a jego szablon HTML jest identyfikowany przez konwencję nazw plików.
Ten sam komponent w Angular
Kod typescriptowy:
Szablon HTML:
W Angularze należy również zadeklarować komponent w sekcji deklaracji ngModule.
Tworzenie komponentów wydaje się być prostsze w Aurelii, czyż nie ?
Składnia wiązania
Składnia Aurelii jest łatwiejsza do nauczenia się i zapamiętania.
Składnia wiązania wartości: attribute.command=”expression”
e.np. <input value.bind=”firstName”>
Składnia wiązania zdarzeń: event.command=”expression”
e.np. <kliknięcie przycisku.trigger=”sayHello()”>Powiedz cześć</button>
Wiązanie klas:
np. <div class.bind=”isActive ? 'active’ : ””></div>
Składnia wiązania Angulara
Wiązanie wartości: W angular dyrektywa ngModel jest używana do wiązania danych wejściowych, Uwaga tutaj „ngModel” jest rozróżniana wielkość liter .
np. <input =”firstName” >
Wiązanie zdarzeń: Jest to nieco proste (event)=”expression”
np. <button (click)=”sayHello()”>Say Hello</button>
Class binding: Ma składnię =”some-condition”
np. =”hero == selectedHero”
Routing i nawigacja
Konfiguracja routingu jest w zasadzie podobna w obu frameworkach, ale z jedną ważną różnicą. W Angular, trasy dla modułu są definiowane centralnie w pojedynczym configu, który definiuje ścieżki i komponenty routowalne wraz ze wszystkimi podtrasami, co czyni go ogromnym i złożonym.
Gdzie w Aurelii możesz zdefiniować trasy nadrzędne w jednym miejscu i umieścić konfigurację tras podrzędnych w komponencie dziecka, to ukrywa wewnętrzną złożoność i sprawia, że komponenty są w pełni hermetyzowane.
Wsparcie językowe
Aurelia oferuje szerokie możliwości wyboru spośród ES5, ES 2015, ES 2016, ES.Next i Typescript do pisania kodu JavaScript.
Gdzie Angular ogranicza użytkownika do pisania kodu tylko w Typescript.
Zgodność ze standardami
Aurelia jest należycie zgodna z istniejącymi standardami, a także z powstającymi standardami sieci Web.
Angular jest w tym przypadku daleko w tyle, na co zwraca uwagę społeczność, że odbiega od standardów. Na przykład, HTML nie rozróżnia wielkości liter, ale Angular przyjął składnię, która rozróżnia wielkość liter jak ngFor, ngModel, które nie mogą być obsługiwane natywnie przez przeglądarkę.
Ekosystem i komercyjne wsparcie
Angular jest wspierany przez giganta IT Google, ma szeroki ekosystem i wsparcie społeczności. Aurelia jest nieco opóźniona w tym przypadku, jej ekosystem jest mniejszy i komponenty stron trzecich nie są szeroko dostępne.
Ale jej ekosystem stale się rozwija i staje się popularnym frameworkiem ze względu na łatwość rozwoju, zgodność ze standardami i prostotę.
Dokumentacja
Zarówno Angular jak i Aurelia mają bogatą dokumentację i samouczki, możesz nauczyć się podstaw frameworka po prostu podążając za samouczkami dostarczonymi na ich stronach.
Jednym negatywnym punktem Angulara jest to, że ma on „stromą krzywą uczenia się”, zespół Angulara ciągle aktualizuje swój framework i te aktualizacje są bardzo częste, więc musisz ciągle się uczyć i dostosowywać niezbędne zmiany.
Konkluzja
Aurelia i Angular są potężnymi frameworkami, Angular ma większą sławę dzięki komercyjnemu wsparciu Google i szerszemu wsparciu społeczności.
Aurelia jest prostsza, dyskretna i bardziej zgodna ze standardami, jej polityka „przewagi konwencji nad konfiguracją” czyni rozwój łatwiejszym i szybszym.