Czy istnieją (mikro) struktury JavaScript MVC po stronie klienta ?
Mam dość skomplikowany formularz HTML i przydałby się wzorzec MVC.
Wyobrażam sobie, że dobre rozwiązanie zapewniłoby:
- Model i widok aktualizują kontroler po zmianie wartości (wzorzec obserwatora)
- Wypełnij model z danych formularza podczas ładowania strony
- Wypełnij formularz z modelu, gdy model się zmieni
Ajax, kometa, JSONP i cały ten jazz to poważna przesada.
javascript
model-view-controller
forms
nicholaides
źródło
źródło
Odpowiedzi:
Backbone to świetna lekka konstrukcja. Spróbuj: http://backbonejs.org/
źródło
JavaScriptMVC to doskonałe rozwiązanie. To wszystko, a podejście oparte na wtyczkach pozwala wybrać tylko te funkcje, których potrzebujesz. Od wersji 2.0 jest oparty na jQuery.
Stopniowe ulepszanie witryny pozostawia się użytkownikowi, ponieważ JMVC zapewnia tylko środkową warstwę do rozwoju - to Ty decydujesz o wyborze projektu.
Jednak JavaScriptMVC jest po prostu najlepszą biblioteką JavaScriptMVC ogólnego przeznaczenia ze względu na potężne kontrolery oparte na delegowaniu zdarzeń.
Delegowanie zdarzeń pozwala uniknąć konieczności dołączania programów obsługi zdarzeń i po prostu tworzyć reguły dla swojej strony.
Wreszcie, JMVC to znacznie więcej niż architektura MVC. Posiada wszystkie części cyklu rozwojowego objęte:
źródło
Spine ma interfejs API podobny do Backbone, ale jest o wiele mniejszy. Posiada dziedziczenie prototypowe.
źródło
AngularJS działa dobrze w połączeniu z jQuery i bardzo pomoże Ci ze strukturą MVC i ścisłym oddzieleniem problemów.
Pełne środowisko testowe i Dependency Injection obejmowały ...
Sprawdź to na http://angularjs.org
źródło
Rzeczywiście jest: http://www.javascriptmvc.com/
Myślę, że uznasz to za wystarczające!
źródło
Myślę, że ten wygląda na coś, co powinieneś sprawdzić: http://knockoutjs.com/
(Jako programista Silverlight / wpf była to biblioteka, która sprawiła, że w końcu zacząłem uczyć się javascript. Jest ona oparta na wzorcu Model-View-View-Model (MVVM), ponieważ teraz wydaje mi się, że to dobry wybór!)
źródło
Jest popularny Backbone.js
źródło
Ember.js
Oto trzy funkcje, które sprawiają, że korzystanie z Ember jest przyjemne:
Wiązania
Użyj powiązań, aby zachować synchronizację właściwości między dwoma różnymi obiektami. Wystarczy raz zadeklarować powiązanie, a Ember upewni się, że zmiany zostaną propagowane w dowolnym kierunku.
Oto jak tworzysz powiązanie między dwoma obiektami:
Powiązania pozwalają zaprojektować aplikację przy użyciu wzorca MVC (Model-View-Controller), a następnie spać spokojnie, wiedząc, że dane zawsze będą prawidłowo przepływać z warstwy na warstwę.
Obliczone właściwości
Obliczone właściwości pozwalają traktować funkcję jak właściwość. Obliczone właściwości są przydatne, ponieważ mogą działać z powiązaniami, tak jak każda inna właściwość.
Automatyczne aktualizacje szablonów
Ember używa Handlebars, semantycznej biblioteki szablonów. Aby pobrać dane z aplikacji JavaScript i umieścić je w DOM, utwórz tag i umieść go w swoim HTML, gdziekolwiek chcesz, aby pojawiła się wartość:
źródło
Stapes.js
Pełne ujawnienie: jestem autorem tej biblioteki :)
Jeśli szukasz czegoś naprawdę małego (1,5 kb zminimalizowanego / spakowanego gzipem), zajrzyj i powiedz mi, czy Ci się podoba.
źródło
new
operatorów). To, co wydaje się niepotrzebne, jest jeszcze jednymeach
imap
. Mam je już w Underscore.js i jQuery .Jeśli twoje wymagania są naprawdę proste, możesz napisać własny prosty MVC, taki jak Alex Netkachov zrobił .
Jego przykłady są zbudowane w dojo (Uwaga: nie działają dla mnie na jego stronie z powodu braku pliku dojo.js), ale możesz podążać za wzorcem w zwykłym JavaScript.
źródło
To prawdopodobnie przesada jak na to, czego potrzebujesz, ale SproutCore to framework MVC i nie wygląda na bardziej ciężki niż JavaScriptMVC lub Junction TrimPath.
Niestety, żaden z nich nie wydaje się opierać na zasadzie stopniowego ulepszania .
źródło
Popularny framework ActionScript MVC PureMVC został niedawno przeniesiony na JavaScript. Nie miałem jeszcze okazji tego wypróbować, ale jestem przekonany, że jest dobry.
źródło
Proszę również do kasy sprawdzić jquery-claypool .
jquery-claypool to mały, szybki framework mvc oparty na jquery, oparty na moich doświadczeniach z django, szynami, sprężynami itp. Jest bardzo lekki i działa zarówno na kliencie, jak i na serwerze.
zapewnia strukturę routingu dla czystego MVC, rejestrowania kategorii, filtrów (aop), leniwego tworzenia kontrolerów, odwrócenia kontroli, konfiguracji przez konwencję i niewiele więcej zgodnie z projektem.
nie robi niczego, co jquery już robi, czuje się jak jquery i działa tak, jak powinien: po prostu.
jquery-claypool
Mam nadzieję, że to sprawdzisz.
źródło
Jamal jest najlżejszym, jaki widziałem. Jest również oparty na jQuery (bonus). Nie korzystałem.
http://jamal-mvc.com/
źródło
Jeśli chcesz mieć wszystko pod kontrolą i całkiem proste, możesz nie potrzebować frameworka, ale po prostu zaimplementuj własny wzorzec MVC. Po prostu sprawdź ten artykuł: Model-View-Controller (MVC) z JavaScriptem autorstwa Alexa Netkachova w 2006 roku.
źródło
Oto lista wszystkich znanych ludzkości frameworków JavaScript typu open source.
http://getopensource.info/explore/javascript/framework/
Lub tylko frameworki MVC
http://getopensource.info/explore/javascript/mvc/
Ujawnienie: jestem twórcą tej witryny.
źródło
Spróbuj kotka . Ma tylko 1,4 KB, a jedyną zależnością jest EJS.
źródło
UPDATE 2016: Sammy.js wydaje się być porzucony.
Spójrz na Sammy.js
Tekst ze strony:
Mała platforma internetowa z klasą.
źródło
Nie nazwałbym tego mikro- ramą, ale z pewnością wygląda interesująco: Cappuccino Web Framework
źródło
CorMVC, łatwy do zrozumienia i na początek, oparty na jquery i niezależny od żadnej technologii serwerowej
źródło
Opracowałem bardzo prosty framework MVC Javascript o nazwie MCV . Nie robi dokładnie tego, o co prosisz, ale można go łatwo rozszerzyć za pomocą pomocników. W każdym razie jest to zdecydowanie mikro (zapakowane 1,9kb).
Działa mniej więcej jak Jamal, ale zdecydowałem się na własny z dwóch powodów:
źródło
Żeby lista była trochę bardziej kompletna: ActiveJS
źródło
Głosowałem za AngularJS (pełne ujawnienie, jestem zaangażowany w ograniczony sposób w angularne wysiłki deweloperów) i jestem bardzo podekscytowany. Zrobiłem porównanie side-by-side, biorąc jedną funkcję dla projektu wewnętrznego (przepraszam, nie mam podpisu, aby ją udostępnić) i implementując ją zarówno w AngularJS, jak i Backbone. To było świetne ćwiczenie i na koniec bardzo skłaniam się ku Angularowi. Główni programiści świetnie odpowiadają na pytania i wykonali naprawdę dobrą robotę z wbudowanym wiązaniem danych, testowaniem jednostkowym / e2e i dokumentacją. Jest nadal w wersji beta, a 1.0 pojawi się w najbliższej przyszłości. Wersja beta jest bardzo stabilna.
Nastąpiła pewna zmiana paradygmatu, a oni stosują całkiem inne podejście niż większość. Integracja twoich ulubionych wtyczek jquery wymaga trochę wysiłku, ale jest wykonalna i została wykonana (angular-contrib na github).
Powiem (i jest to problem w przypadku większości frameworków skoncentrowanych na js), upewnij się, że zbadałeś, jak uczynić treść przyjazną dla SEO (jeśli jest to dla Ciebie ważne). Odkąd dołączyłem do społeczności Angular w czerwcu, zauważyłem, że zainteresowanie rośnie i wiele osób publikuje posty, w których mówi, że oglądali Backbone i innych, ale naprawdę podoba im się to, co widzą w Angular.
źródło
Maverick to mały framework JavaScript MVC - http://maverick.round.ee
źródło
Tutaj też mam zamiar potokować - AFrameJS współpracuje z jQuery, MooTools i Prototype.
źródło
Kolejny: MooTools-MVC
źródło
Istniał framework JavaScript wiążący klucz-wartość o nazwie „Coherent”, który został zainspirowany przez Apple's Cocoa Bindings. Framework został kupiony przez Apple, ale nadal istnieje stara kopia pod adresem http://github.com/trek/coherentjs/tree/master .
źródło
Wypróbuj ten framework javascript MVC oparty na jQuery .
źródło
Jeszcze jeden, lekki i malutki: http://jqnano.oleksiy.pro/
źródło
Can.js ma wszystko, czego potrzebujesz i waży zaledwie 8 KB. Wziął najlepsze fragmenty z JavaScriptMVC i wydestylował go w jeden mały, ale niesamowity framework z obserwatorami, widżetami, powiązaniami, pracami. Jest kompatybilny z głównymi frameworkami ( jQuery , Dojo Toolkit , MooTools itp.). Dokumentacja jest doskonała, a autorzy reagują. Na pewno warto zajrzeć.
źródło