11

Istnieje wiele frameworków JavaScript MVC dostępnych obecnie (Backbone.js, Cappuccino, Ember.js, GWT, itp.), Z których każdy ma swoje własne pozytywne i negatywne strony. Moje pytania są;JavaScript MVC frameworks

  1. Jakie są rzeczywiste korzyści, które zapewnia ramy MVC nad normalnym JavaScript?
  2. Czy wszystkie frameworki są oparte głównie na jQuery?
  3. W jaki sposób decydować, które ramy należy wybrać? Jakie pytania należy zadać przed wskazaniem jakiegoś frameworka?
  4. Jedno konkretne pytanie, które mam do MVC, to niektóre ramy, które aktualizują widok, gdy tylko model/dane się zmieniają ... Czy to możliwe dzięki AJAX?

Proszę dać mi znać w bardzo podstawowych kategoriach praktycznych ..

+1

możliwy duplikat [Który framework JavaScript (jQuery kontra Dojo vs ...)?] (Http://stackoverflow.com/questions/394601/which-javascript-framework-jquery-vs-dojo-vs) – dynamic

+4

nie jest duplikatem tego pytania. Testndtv pyta o frameworki mvc, odwołujesz się do pytania głównie o manipulowanie domowymi, wizualnymi frameworkami. –

+0

@laurens peeters: Absolutnie poprawne ... Mam na myśli Javascript MVC frameworks SPECYFICZNIE, a nie normalne jQuery, Dojo, Mojo, itp. – testndtv

Odpowiedz

3
  1. Korzyści:

    • kod wielokrotnego użytku
    • Separacja widzenia logiki z logiki biznesowej
    • łatwiejsze do utrzymania/document
  2. No. Na przykład, początki ExtJS pochodzą z GWT (jeśli dobrze pamiętam)

  3. zajrzeć na złożoności i skali, co próbujesz zrobić i rozważyć plusy i minusy ramach krzywej uczenia/wydatki (zarówno czasowe, jak i pieniężne) w zależności od potrzebnych funkcji. Na przykład, jeśli potrzebujesz potężnych siatek danych i zaawansowanych widgetów, extJS może być najlepszym sposobem. Jednakże, jeśli potrzebujesz czegoś lżejszego, Django może być lepszą opcją (tylko przykład).
  4. Tak, wszystko to odbywa się za pośrednictwem AJAX. W ExtJS 4, po dodaniu rekordu do sklepu dołączonego do siatki, siatka automatycznie aktualizuje się.

Mam nadzieję, że to pomoże.

+0

ExtJS pochodzi z Yui – SriN

4

MVC daje korzyści architektoniczne w porównaniu ze standardowym JavaScriptem - pomaga pisać lepiej zorganizowany, a przez to łatwiejszy w utrzymaniu kod. Jest to wzorzec, który został użyty i gruntownie przetestowany na wielu językach i pokoleniach programistów. Są szanse, że jeśli chcesz coś zrobić, ktoś już to zrobił, więc używanie sprawdzonego wzoru pomaga wykorzystać zalety tego wzoru, nie popełniając błędów popełnionych przez wcześniejszych programistów, oszczędzając w ten sposób Twój czas i wysiłek.

Backbone nie jest oparty na jQuery, ale jest kompatybilny z jQuery i daje ci trochę radości, jeśli go używasz, np. w Odsłonach daje buforowane odwołanie do kontenera widoków w $ el. Ale jeśli używasz Zepto zamiast jQuery, $ el jest zawijane w funkcje Zepto, a nie w jQuery.

YUI ma MVC komponenty i jest całkowicie nie na podstawie jQuery;)

Jeden decyduje, które ramowa zostanie zastosowana w oparciu o potrzeby bieżącego projektu, dokumentacji dotyczącej ramowego Wspólnota jest oparta na, etc To samo, co wybór biblioteki JS do użycia lub której struktury zaplecza użyć itp.Co jest dla jednej osoby/projekt może nie być dla innej osoby/projektu

4
  • Jakie są rzeczywiste korzyści, które zapewnia ramy MVC nad normalnym JavaScript?
  • szkieletowe są przydatne, gdy trzeba zorganizować swój kod i oddzielne obawy w aplikacji
  • Czy wszystkie ramy głównie w oparciu o jQuery?
  • MVC ramy nie mają nic wspólnego z jQuery, jQuery jest głównie tutaj, aby zrobić DOM manipulacji, animacja, ale mogą one mieć cechy, które można znaleźć w jQuery jak system zdarzeń, Ajax, etc ... Jak jeden decyduje, które ramy należy wybrać? Jakie pytania należy zadać przed wskazaniem jakiegoś frameworka?
  • Musisz je przetestować, napisać aplikację bez frameworka, a następnie spróbuj przerobić kod za pomocą frameworka i sprawdź, czy można z nim łatwo pracować.
  • Jedno konkretne pytanie, które mam do MVC, to niektóre ramy, które aktualizują widok, gdy tylko model/dane się zmieniają ... Czy to możliwe dzięki AJAX?

  • wszystkie tak to robią, taki jest cel MVC. kiedy model się zmienia, widok jest zgłaszany i ponownie renderuje się ... ale robi to na różne sposoby.

Teraz, moim zdaniem, z jQuery, nie należy naprawdę potrzebują „zewnętrzne” MVC ramy, ponieważ jQ ma już wbudowany układ zdarzeń, wiele funkcji pomocniczych i JavaScript obiekty są wystarczająco dynamiczne, aby dołączyć do nich dowolne zachowanie w locie bez definiowania "klas" obiektów.

Moim celem jest: możesz zrobić własny MVC za pomocą jQuery, wszystkie narzędzia są już w bibliotece.

JEŚLI potrzebujesz innych rzeczy, takich jak "router", pomocników do sprawdzania poprawności, rusztowania itp. ... to jest droga do MVC.

+1

Nie powiedziałbym, że wszystkie ponownie renderują widoki automatycznie, gdy model zmiany. Backbone pozostawia ci wszystko, aby zaimplementować renderowanie widoków, w tym ponowne ich renderowanie po zmianie modelu. Jeden nadal wymaga MVC (lub jakiegoś innego wzoru architektonicznego) podczas korzystania z jQuery. Ustalono, że jQuery nie jest przeznaczony i nie jest użyteczny w tworzeniu "dużych", nietrywialnych aplikacji JavaScript, zobacz: http://blog.rebeccamurphey.com/on-jquery-large-applications – danwellman

+0

oczywiście, od ciebie zależy kodowanie zachowania widoku, gdy model się zmienia, struktura nie jest magiczna, w której musisz po prostu umieścić plik .js w swoim html, aby to działało. – mpm

+0

Nie zgadzam się z rebecca murphey. Kiedy można wysyłać i słuchać zdarzeń, wystarczy stworzyć własny MVC. W końcu MVC może być tylko mieszaniną wzorca strategicznego i wzorca obserwatora. Dlaczego potrzebujesz czegoś specjalnego, aby wymusić te wzorce w javascript?po prostu twórz obiekty, które mają wymagane zachowanie. Zdarzenie trigger/suscbribe jest potrzebne do implementacji wzorca obserwatora. I nie potrzebujesz niczego specjalnego do zaimplementowania wzoru stragegy, tylko 2 obiekty. – mpm