| AngularJS | React | Ember JS | Backbone JS | Ractive JS | CanJS | Knockout JS | batman js | rAppid JS | SproutCore |
Zdjęcie | | | | | | | | | | |
Informacje ogólne |
Automatyczny filtr widokuPosiada mechanizm do filtrowania widoków oparty na zakresie zmiennych (na przykład przy wyszukiwaniu) bez potrzeby zbytniego wpisywania dodatkowych kodów. |
Automatyczny filtr widokuPosiada mechanizm do filtrowania widoków oparty na zakresie zmiennych (na przykład przy wyszukiwaniu) bez potrzeby zbytniego wpisywania dodatkowych kodów. | ✔ | ✖ | ✔ | ✖ | ✖ | ✖ | ✖ | ✔ | ✖ | ✖ |
Używa mechanizmu szablonowegoMechanizm szablonowy pozwala na proste i elastyczne budowanie UI. |
Używa mechanizmu szablonowegoMechanizm szablonowy pozwala na proste i elastyczne budowanie UI. | ✖ | ✖ | ✔ | ✔ | ✔ | ✔ | ✔ | ✖ | ✔ | ✔ |
Rozszerza HTMLNiektórzy widzą w tym zaletę, ponieważ eliminuje zapas z innej szablonu językowego. |
Rozszerza HTMLNiektórzy widzą w tym zaletę, ponieważ eliminuje zapas z innej szablonu językowego. | ✔ | ✖ | ✖ | ✖ | ✖ | ✖ | ✔ | ✔ | ✖ | ✖ |
Opublikowane na licencji MITLicencja MIT to niezwykle permisywna licencja, która pozwala na kompleksowe wykorzystanie, w tym biznesowe, bez gwarancji. |
Opublikowane na licencji MITLicencja MIT to niezwykle permisywna licencja, która pozwala na kompleksowe wykorzystanie, w tym biznesowe, bez gwarancji. | ✔ | ✖ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Współpracuje z innymi strukturami MV*Może być wykorzystane do zamiany części innej struktury bez usuwania pozostałych funkcji. |
Współpracuje z innymi strukturami MV*Może być wykorzystane do zamiany części innej struktury bez usuwania pozostałych funkcji. | ✖ | ✔ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ |
Sumaryczny wynik dla "Informacje ogólne" |
Sumaryczny wynik dla "Informacje ogólne" | | | | | | | | | | |
Wtyczki |
Popularną wtyczkę do wspierania animacjiPosiada wtyczkę, która zawiera udogodnienia do prostego tworzenia animacji widoku. |
Popularną wtyczkę do wspierania animacjiPosiada wtyczkę, która zawiera udogodnienia do prostego tworzenia animacji widoku. | ✔ | ✔ | ✔ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ |
Liczba wtyczekWtyczki oferują prosty sposób na rozszerzenie funkcjonalności lub integracji z innymi usługami. Duża liczba wtyczek oznacza, że istnieje aktywna społeczność użytkowników. Tylko oficjalne wtyczki są uwzględniane. |
Liczba wtyczekWtyczki oferują prosty sposób na rozszerzenie funkcjonalności lub integracji z innymi usługami. Duża liczba wtyczek oznacza, że istnieje aktywna społeczność użytkowników. Tylko oficjalne wtyczki są uwzględniane. | 213 | N.A. | N.A. | 153 | N.A. | 7 | 33 | N.A. | N.A. | N.A. |
Dedykowane źródło wtyczek.Pokazuje to, że konstrukcja posiada żywy ekosystem, duże wsparcie społeczności i pozwala na większą elastyczność i szybsze tempo rozwoju. |
Dedykowane źródło wtyczek.Pokazuje to, że konstrukcja posiada żywy ekosystem, duże wsparcie społeczności i pozwala na większą elastyczność i szybsze tempo rozwoju. | ✔ | ✖ | ✖ | ✔ | ✖ | ✔ | ✖ | ✖ | ✖ | ✖ |
Wbudowana synchronizacja abstrakcji RESTful dla modeliZawiera udogodnienia do utrzymywania modeli w synchronizacji z ich serwerowym obrazem bez potrzeby pisania jQuery zestandaryzowanych połączeń ajax. |
Wbudowana synchronizacja abstrakcji RESTful dla modeliZawiera udogodnienia do utrzymywania modeli w synchronizacji z ich serwerowym obrazem bez potrzeby pisania jQuery zestandaryzowanych połączeń ajax. | ✔ | ✖ | ✖ | ✔ | ✖ | ✔ | ✖ | ✔ | ✔ | ✖ |
Wspiera animacjeZawiera udogodnienia do prostego tworzenia widoku animacji. |
Wspiera animacjeZawiera udogodnienia do prostego tworzenia widoku animacji. | ✖ | ✖ | ✖ | ✖ | ✔ | ✖ | ✖ | ✖ | ✖ | ✖ |
Sumaryczny wynik dla "Wtyczki" |
Sumaryczny wynik dla "Wtyczki" | | | | | | | | | | |
Biblioteki & Pakiety |
Nie potrzebuje biblioteki manipulacji DOMNie wymaga lub nie wspiera korzystania z określonych bibliotek (takich jak jQuery, Zepto lub MooTools) do obsługi manipulacji DOM i może być użyte z tą, którą zaleca programista. |
Nie potrzebuje biblioteki manipulacji DOMNie wymaga lub nie wspiera korzystania z określonych bibliotek (takich jak jQuery, Zepto lub MooTools) do obsługi manipulacji DOM i może być użyte z tą, którą zaleca programista. | ✖ | ✔ | ✖ | ✖ | ✔ | ✔ | ✖ | ✖ | ✖ | ✖ |
Pracuje z bibliotekami AMD takimi jak require.jsBiblioteki AMD (Asynchronous Module Definition) pozwalają na łatwe, modułowe i całkowite programowanie. Jeśli schemat nie działa odpowiednio z takimi bibliotekami, to może mieć ona inne środki do modularyzacji swoich komponentów i rozpoznanie zależności, jak Wstrzykiwanie Zależności. |
Pracuje z bibliotekami AMD takimi jak require.jsBiblioteki AMD (Asynchronous Module Definition) pozwalają na łatwe, modułowe i całkowite programowanie. Jeśli schemat nie działa odpowiednio z takimi bibliotekami, to może mieć ona inne środki do modularyzacji swoich komponentów i rozpoznanie zależności, jak Wstrzykiwanie Zależności. | ✔ | ✔ | ✖ | ✔ | ✔ | ✔ | ✖ | ✖ | ✔ | ✖ |
Oficjalnie wspiera zarządzanie zależnościami BowerBower to prosty w obsłudze, podobny do pakietu npm menedżer do aplikacji interfejsu. |
Oficjalnie wspiera zarządzanie zależnościami BowerBower to prosty w obsłudze, podobny do pakietu npm menedżer do aplikacji interfejsu. | ✔ | ✔ | ✖ | ✔ | ✔ | ✔ | ✖ | ✖ | ✖ | ✖ |
Oficjalny, aktualizowany wpis do menedżera pakietu npm.Menedżer pakietu węzłowego może być również użyty do zarządzania skryptami interfejsu. |
Oficjalny, aktualizowany wpis do menedżera pakietu npm.Menedżer pakietu węzłowego może być również użyty do zarządzania skryptami interfejsu. | ✖ | ✖ | ✔ | ✔ | ✔ | ✖ | ✔ | ✖ | ✔ | ✖ |
Zawiera jQuery LiteWykorzystuje elementy jQuery, gdzie niezbędna okazuje się manipulacja DOM. W ten sposób, programiści otrzymują wygodne funkcje pomocnicze jQuery bez konieczności załączania całej biblioteki. W wielu przypadkach korzystania z niego eliminuje zależność projektu od jQuery. |
Zawiera jQuery LiteWykorzystuje elementy jQuery, gdzie niezbędna okazuje się manipulacja DOM. W ten sposób, programiści otrzymują wygodne funkcje pomocnicze jQuery bez konieczności załączania całej biblioteki. W wielu przypadkach korzystania z niego eliminuje zależność projektu od jQuery. | ✔ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ |
Sumaryczny wynik dla "Biblioteki & Pakiety" |
Sumaryczny wynik dla "Biblioteki & Pakiety" | | | | | | | | | | |
Wiązanie danych |
Dwukierunkowe wiązanie danychModele i widoki mogą być nawzajem aktualizowane. |
Dwukierunkowe wiązanie danychModele i widoki mogą być nawzajem aktualizowane. | ✔ | ✖ | ✔ | ✖ | ✔ | ✖ | ✔ | ✔ | ✔ | ✔ |
Wspiera jednokierunkowe wiązanie danychWidoki mogą być aktualizowane automatycznie, gdy widoczny obiekt ulega zmianom. |
Wspiera jednokierunkowe wiązanie danychWidoki mogą być aktualizowane automatycznie, gdy widoczny obiekt ulega zmianom. | ✔ | ✔ | ✔ | ✖ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Modele są prostymi obiektami JavaScriptUłatwia to transfer danych pomiędzy aplikacją i serwisami REST lub pamięcią lokalną. Redukuje również złożoność funkcji getter i setter. |
Modele są prostymi obiektami JavaScriptUłatwia to transfer danych pomiędzy aplikacją i serwisami REST lub pamięcią lokalną. Redukuje również złożoność funkcji getter i setter. | ✔ | ✔ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ |
Pozwala na wykorzystanie widoku domieszki (programowania obiektowego)Domieszka to technika programowania pozwalająca różnym obiektom na dzielenie się wspólnym zachowaniem bez konieczności obiektowego dziedziczenia. |
Pozwala na wykorzystanie widoku domieszki (programowania obiektowego)Domieszka to technika programowania pozwalająca różnym obiektom na dzielenie się wspólnym zachowaniem bez konieczności obiektowego dziedziczenia. | ✖ | ✔ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ |
Może zostać rozszerzone przez popularną wtyczkę, aby umożliwić dwukierunkowe wiązanie danychMoże zostać rozszerzone do wspierania modeli i wyświetleń poprzez wzajemne aktualizacje. Zwiększa to rozmiar pliku, ale pozwala na większą elastyczność. |
Może zostać rozszerzone przez popularną wtyczkę, aby umożliwić dwukierunkowe wiązanie danychMoże zostać rozszerzone do wspierania modeli i wyświetleń poprzez wzajemne aktualizacje. Zwiększa to rozmiar pliku, ale pozwala na większą elastyczność. | ✖ | ✔ | ✖ | ✔ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ |
Sumaryczny wynik dla "Wiązanie danych" |
Sumaryczny wynik dla "Wiązanie danych" | | | | | | | | | | |
Wydajność |
Najmniejsza wielkość pliku bez zależnościMniejszy rozmiar pliku oznacza szybszy czas ładownia. |
Najmniejsza wielkość pliku bez zależnościMniejszy rozmiar pliku oznacza szybszy czas ładownia. | 81KB | 78KB | 235KB | 19KB | 65KB | 69KB | 43KB | 247KB | 120KB | N.A. |
Wspiera trasowanie i tworzenie łącza do strony docelowejTrasowanie (routing) pozwala na interakcję z adresem url przeglądarki. Jest to bardzo ważne dla wygodnej pracy użytkownika pracującego nad jednostronną aplikacją. |
Wspiera trasowanie i tworzenie łącza do strony docelowejTrasowanie (routing) pozwala na interakcję z adresem url przeglądarki. Jest to bardzo ważne dla wygodnej pracy użytkownika pracującego nad jednostronną aplikacją. | ✔ | ✖ | ✔ | ✔ | ✔ | ✔ | ✖ | ✔ | ✔ | ✔ |
Wykorzystuje PromisesPosiada wewnętrzne wprowadzenie specyfikacji Promises/A+. Promises to popularna alternatywa dla oddzwanianiu przy postępowaniu z odpowiedziami serwera. |
Wykorzystuje PromisesPosiada wewnętrzne wprowadzenie specyfikacji Promises/A+. Promises to popularna alternatywa dla oddzwanianiu przy postępowaniu z odpowiedziami serwera. | ✔ | ✖ | ✔ | ✖ | ✖ | ✔ | ✖ | ✖ | ✖ | ✖ |
Szablony mogą być wcześniej skompilowane na serwerzeWspiera mechanizm szablonowy, który może wcześniej być renderowany na serwerze. Prawdopodobnie zwiększy to szybkość strony, zwłaszcza na urządzeniach z niską mocą obliczeniową. |
Szablony mogą być wcześniej skompilowane na serwerzeWspiera mechanizm szablonowy, który może wcześniej być renderowany na serwerze. Prawdopodobnie zwiększy to szybkość strony, zwłaszcza na urządzeniach z niską mocą obliczeniową. | ✖ | ✔ | ✔ | ✔ | ✖ | ✔ | ✔ | ✖ | ✖ | ✔ |
Wstrzykiwanie zależnościZwiększa to sprawdzalność i modularność. |
Wstrzykiwanie zależnościZwiększa to sprawdzalność i modularność. | ✔ | ✖ | ✔ | ✖ | ✖ | ✖ | ✖ | ✖ | ✔ | ✖ |
Sumaryczny wynik dla "Wydajność" |
Sumaryczny wynik dla "Wydajność" | | | | | | | | | | |