2013-05-22 2 views
11

Rozumiem, że potrzebuję jakiejś warstwy abstrakcji do typowych operacji, takich jak pobieranie elementów DOM, manipulacja atrybutami itp., Ale jQuery jest dość masywną biblioteką, która wydaje się być przesadą dla Ember.Dlaczego jQuery jest zależne od Ember.js?

Po przejrzeniu kodu źródłowego, istnieje około 30 lub więcej zastosowań jQuery w Ember i wygląda na to, że większość użycia jQuery to proste wywołania selektora, niektóre zdarzenia i niektóre przejścia DOM.

Ember. $ (RootElement) .off (". Ember", "**"). RemoveClass ("aplikacja ember");

...

elem = this. $(); ..

...

to $() appendTo (target);

...

Ember $ (okno) .Na ('hashchange.ember-lokalizacja -'. + Guid, function() {

itp

Czy istnieją inne powody Ember wymaga jQuery dla każdej aplikacji?

Czy te kilka zastosowań być wbudowane w Ember i jQuery usuwane jako zależność?

+2

'Jquery' to po prostu' Javascript' dla ludzi, którzy nie chcą pisać 'javascript'. W związku z tym istnieje wiele osób, które po prostu dodadzą coś dla pojedynczej funkcji jquery, zamiast pisać 5 lub 10 linii kodu, aby to zrobić w JavaScript. To przynajmniej moje doświadczenie. –

+1

i nie ma nic złego w tym, że –

+0

@ParijatKalia to żart? – aaaaaa

Odpowiedz

17

Tylko warstwa widoku Embera zależy od jQuery. Używano go bardziej historycznie niż teraz. W przyszłości moglibyśmy, jak sugerujesz, włączyć funkcjonalność do samego Embera, chociaż nie chcemy utrzymywać kompatybilności z wieloma przeglądarkami w Ember, nad którą jQuery już się opiekuje. Inna ścieżka, z jQuery 2.0, byłaby sposobem na stworzenie trymerowej kompilacji jQuery zawierającej tylko te fragmenty, których używa Ember.

Jeśli istnieją bezkompromisowe sposoby zastępowania wystąpień użycia jQuery w rdzeniu Ember, należy zaproponować zmiany jako problemy w GitHub.

+2

Dlaczego po prostu nie używać Zepto lub czegoś, jeśli jQuery nie jest załadowany? Podobnie do tego, w jaki sposób Angular używa "minimalnej jQuery". Albo jeszcze lepiej - upewnij się, że Ember działa razem z Zepto i jQuery. –

22

Pytanie brzmiało: extremely well explained autor: Tom Dale (Ember Core Developer).

Zasadniczo mówi:

ember.js wymaga jQuery z dwóch powodów:

  • Stawiamy na nią mocno w integracji Ember/Kierownice do wprowadzania i modyfikowania elementów DOM. Osobiście nie jestem zainteresowany w radzeniu sobie z błędami manipulacji DOM w przeglądarkach, ale zespół jQuery przoduje w tym.
  • Posiadając standardową bibliotekę manipulacji DOM w jQuery, programiści mogą poruszać się między różnymi aplikacjami Ember.js i polegają na tym, że pod nimi znajduje się przetestowana pod kątem bitew, biblioteka międzyplatformowa.

Jeśli chodzi o wielkość, polecam zbadanie nowego jQuery 2.0, który ma zdolność do niestandardowych buduje bez cech takich jak animacja.

Ma wiele sensu.

Aktualizacja:

Ostatnio Erik Bryn (Ember Twórca programu zbyt) napisał bardzo ciekawy comment o ramach i wspomniał stan sztuce jQuery wykorzystania w projektach Ember.

Wklejanie komentarz:

Jest to błędne przekonanie, że ember.js jest monolitem. Mogę zapewnić , że to nie jest prawda. Możesz wybrać i wybrać części, które chcesz lub potrzebujesz (na przykład router jest całkowicie opcjonalny). Nasze narzędzia do budowania wspierają również wybieranie i wybieranie pakietów, które chcesz. Możesz go teraz używać bez jQuery (będziesz potrzebować do podkładania i posiadania biblioteki delegowania zdarzeń, lub jeszcze łatwiejszego używania superlekkiego super-lightweight custom jQuery build).