Есть ли JavaScript MVC (микро) фреймворк? [закрыто]

Есть ли клиентский JavaScriptMVC (микро-) рамки?

У меня довольно сложная HTML-форма, и она выиграет от шаблона MVC.

Я полагаю, что хорошее решение могло бы обеспечить следующее:

Model и View обновляют контроллер при изменении значений (шаблон Observer)Заполните модель из данных формы при загрузке страницыЗаполните форму из модели при изменении модели

Аякс, комета,JSONP и весь этот джаз - серьезное излишество.

 Olical16 июл. 2013 г., 16:44
Я начал работать над чем-то недавно, потому что у меня было такое же чувство, как и у вас. Он настолько же минимален, как и AMD, и настолько незаметен, насколько я мог это себе представить. Это означает, что нет jQuery и т. Д. Я знаю, что это было закрыто сейчас, но я думаю, что этоможет быть быть тем, что вы искали:github.com/Wolfy87/tarmac - В последнее время я мало что сделал с этим, потому что думал, что буду единственным пользователем.
 theman_on_vista22 дек. 2008 г., 23:14
Я ошибаюсь или это просто плохая идея (или, может быть, фреймворк совместим с модным словечком)?
 koppor17 сент. 2016 г., 09:51
Посмотри наTodoMVC, который сравнивает (почти) все доступные платформы JavaScript путем реализации простого приложения TODO.
 Yuval A.20 дек. 2015 г., 10:33

Ответы на вопрос(30)

Я тоже собираюсь здесьAFrameJS работает с jQuery, MooTools и Prototype.

Популярная среда ActionScript MVCPureMVC недавно был портирован на JavaScript. У меня еще не было возможности попробовать это, но я уверен, что это хорошо.

 Glenn01 сент. 2009 г., 06:23
Мне нравится это для flex. Просто и мощно.

Я проголосовал за AngularJS (полное раскрытие, я ограниченно вовлечен в усилия по разработке угловых приложений) и очень рад этому. Я провел параллельное сравнение, взяв одну функцию для внутреннего проекта (извините, у меня нет подписи, чтобы поделиться ею) и реализовав ее как в AngularJS, так и в Backbone. Это было отличное упражнение, и, в конце концов, я очень сильно склоняюсь к Angular. Разработчики ядра прекрасно умеют отвечать на вопросы, и они проделали отличную работу со встроенной привязкой данных, тестированием модулей / e2e и документацией. Это все еще в бета-версии с 1.0, выходящим в ближайшем будущем. Бета очень стабильная.

Существует некоторая смена парадигмы, и они используют совершенно иной подход, чем большинство. Интеграция ваших любимых плагинов jquery требует немного усилий, но выполнима и уже выполнена (angular-contrib на github).

Я скажу (а это проблема для большинства js-centric-фреймворков), обязательно изучите, как сделать ваш контент SEO-дружественным (если это важно для вас). Со времени присоединения к сообществу angular в июне я заметил, что интерес растет, и многие люди публикуют сообщения о том, что они смотрели на Backbone и других, но им действительно нравится то, что они видят в Angular.

Я разработал очень простую инфраструктуру Javascript MVC под названиемMCV, Он не делает именно то, что вы просите, но его легко расширить с помощью помощников. Во всяком случае, это определенно микро (1,9kb упакованы).

Это работает более или менее как Джамал, но я решил свернуть свой собственный по двум причинам:

удалить зависимость jQuery (хотя я использую ее вместе с jQuery большую часть времени)делая его расширяемым с помощью помощников. Это аналог поведения CakePHP, его компонентов и помощников.

Я думаю, что это выглядит как то, что вы должны проверить:http://knockoutjs.com/

(Как программист silverlight / wpf именно эта библиотека заставила меня наконец начать изучать javascript. Она основана на шаблоне Model-View-View-Model (MVVM), поскольку для меня сейчас это хороший выбор!)

 jonperl12 апр. 2012 г., 01:47
Как программист silverlight / wpf я оценил нокаут, позвоночник и пару других. В конце дня я перешел на Angular. У него есть привязки и многое другое.

Джамал - самый легкий из всех, кого я видел. Он также основан на JQuery (бонус). Не использовал.

http://jamal-mvc.com/

ember.js

Вот три функции, которые делают Ember радостью использования:

НаручникиВычисленные свойстваАвтообновление шаблоновНаручники

Используйте привязки, чтобы синхронизировать свойства между двумя различными объектами. Вы просто объявляете привязку один раз, и Ember обеспечит распространение изменений в любом направлении.

Вот как вы создаете привязку между двумя объектами:

MyApp.president = Ember.Object.create({
  name: "Barack Obama"
});

MyApp.country = Ember.Object.create({
  // Ending a property with 'Binding' tells Ember to
  // create a binding to the presidentName property.
  presidentNameBinding: 'MyApp.president.name'
});

MyApp.country.get('presidentName');
// "Barack Obama"

Привязки позволяют вам спроектировать ваше приложение с использованием шаблона MVC (Model-View-Controller), а затем спокойно, зная, что данные всегда будут правильно передаваться от слоя к слою.

Вычисленные свойства

Вычисленные свойства позволяют вам рассматривать функцию как свойство. Вычисляемые свойства полезны, потому что они могут работать с привязками, как и любое другое свойство.

Автообновление шаблонов

Ember использует Handlebars, семантическую библиотеку шаблонов. Чтобы взять данные из вашего приложения JavaScript и поместить их в DOM, создайте тег и поместите его в свой HTML, где бы вы ни хотели видеть значение:

<script type="text/x-handlebars">
  The President of the United States is {{MyApp.president.fullName}}.
</script>
 Bijendra16 нояб. 2012 г., 12:56
Желательно использовать поверх магистрали каким-либо образом .... если спецификации не так ясны на начальных этапах ..
 Prefix02 нояб. 2015 г., 17:49
Использование Ember и микрофрейм в одном предложении не должно быть разрешено.
 iConnor10 февр. 2014 г., 17:07
Мне нравится emberJS, но это не так"микро" егоОГРОМНЫЙ потому что это плоские рамки

Существовал JavaScript-фреймворк привязки ключ-значение под названием «Coherent», который был вдохновлен Apple Cocoa Bindings. Каркас был куплен Apple, но все еще есть старая копия наhttp://github.com/trek/coherentjs/tree/master.

JavaScriptMVC это отличное решение. Это все плагин подход позволяет вам выбирать только те функции, которые вам нужны. Начиная с версии 2.0 он основан на jQuery.

Что касается постепенного улучшения вашего сайта, это остается за пользователем, поскольку JMVC предоставляет лишь средний уровень для разработки - вы сами можете сделать этот выбор дизайна.

Однако JavaScriptMVC - это просто лучшая библиотека JavaScriptMVC общего назначения из-за ее мощных контроллеров, основанных на делегировании событий.

Делегирование событий позволяет вам избежать необходимости прикреплять обработчики событий и просто создавать правила для вашей страницы.

Наконец, JMVC - это намного больше, чем архитектура MVC. Все части цикла разработки покрыты:

Генераторы кодаКомплексное тестирование Selenium и Env.jsДокументация EngineАвтоматический Конкат + КомпрессОбнаружение ошибок и отчетность
 PHearst19 апр. 2014 г., 13:36
MVC часть JMVC теперьcan.js
 Chris Jaynes19 мая 2012 г., 07:24
Так как я сделал этот комментарий, я переключился на использование Require и Spine. В конечном итоге они меньше, более элегантны и менее «корпоративны», чем JMVC. JMVC было приятно для нашей команды Java-разработчиков внести корректировку в JS, но она не выдерживает, как только вы начинаете лучше понимать JS ...
 Chris Jaynes31 авг. 2011 г., 04:41
+1 для JavascriptMVC - я уже использовал его для нескольких приложений, и это довольно мило. Пропустите примеры генерации кода на сайте. Я полагаю, это только для того, чтобы успокоить фанатов Rails. :) Начните с базовой объектной модели JQueryMX и создайте контроллер.

ОБНОВЛЕНИЕ 2016: Sammy.js, кажется, заброшен.

Посмотри наSammy.js

Текст с сайта:

Небольшая вебкамера с классом.

МАЛЕНЬКИЙ Ядро Сэмми сжато только на 16 КБ, сжато на 5,2 К и сжатоМОДУЛЬНАЯ Сэмми построен на системе плагинов и адаптеров. Включайте только тот код, который вам нужен. Также легко извлечь собственный код в повторно используемые плагины.ЧИСТАЯ Весь API был спроектирован так, чтобы его было легко понять и прочитать. Сэмми пытается поощрять хорошую инкапсуляцию и дизайн приложений.ВЕСЕЛЬЕ Какова реальная точка развития, если это не приятно. Сэмми пытается следовать подходу MATZ. Это оптимизировано для счастья разработчика.
 Bijan01 апр. 2016 г., 15:27
Юкихиро «Матц» Мацумото, создатель ruby, часто говорил, что «пытается сделать Ruby естественным, а не простым» способом, отражающим жизнь. Таким образом, программное обеспечение должно быть естественным для пользователя. Это подразумевается под подходом MATZ.
 kstep01 апр. 2016 г., 15:22
Не могли бы вы рассказать о том, что такое MATZ?

CorMVC, легко понять и начать, основанный на jquery и не зависит от какой-либо серверной технологии

Can.js имеет все необходимое и весит всего 8 КБ. Он взял лучшие биты из JavaScriptMVC и превратил его в один маленький, но потрясающий фреймворк с наблюдателями, виджетами, связыванием, работами. Это совместимо с основными фреймворками (JQuery, Dojo Toolkit, MooTools, так далее.). Документация отличная, и авторы отзывчивы. Это определенно стоит посмотреть.

AngularJS хорошо работает вместе с jQuery и поможет вам со структурой MVC и строгим разделением задач.

Полная среда тестирования и внедрение зависимостей включены ...

Проверьте это вhttp://angularjs.org

 iConnor01 февр. 2014 г., 02:53
угловой не микро рамки: /
 hasen23 мар. 2015 г., 04:07
угловой является полной противоположностью микро рамки. это зверь
 Tony Bao24 окт. 2013 г., 22:09
Angularjs является лучшим на конец 2013 года .... Я думаю ....
 vsync31 мар. 2014 г., 00:10
да, кривая обучения также непропорциональна, это дает преимущества по сравнению с другими системами.
 Vojta12 мар. 2014 г., 04:12
Согласитесь, Angular не является микро-фреймворком.

Вот список всех JavaScript-фреймворков с открытым исходным кодом, известных человечеству.

http://getopensource.info/explore/javascript/framework/

Или только рамки MVC

http://getopensource.info/explore/javascript/mvc/

Раскрытие: я разработчик этого сайта.

Это, вероятно, излишне для того, что вам нужно, ноSproutCore это инфраструктура MVC, и она не выглядит более тяжелой, чемJavaScriptMVC или TrimPath'sузловой.

К сожалению, ни один из них, кажется, не построен по принципупрогрессивное улучшение.

 Justin Meyer24 мар. 2011 г., 18:07
Основные MVC-компоненты JavaScriptMVC примерно на 1 кб больше, чем у gzipped Backbone (хотя и обладают рядом дополнительных функций). И JMVC полностью способен создавать прогрессивно улучшенные приложения. Вы бы просто выбросили слой модели.

корешок имеет API, похожий на Backbone, но он намного меньше. Это показывает наследование прототипа.

 Richard22 дек. 2014 г., 18:10
Браузер поддерживает IE> = 9, поэтому убедитесь, что он соответствует профилю ваших посетителей.
 a paid nerd11 нояб. 2011 г., 22:53
Он также написан на CoffeeScript и использует классы в стиле CoffeeScript - не то чтобы это был огромный выигрыш, но это довольно приятно.
 Brenden20 янв. 2012 г., 02:43
Я полагаю, поэтому он меньше, чем позвоночник? Coffeescript код более компактен ...
 Chris Jaynes19 мая 2012 г., 07:26
Я люблю позвоночник. Используйте его с RequireJS для чистой удивительности. Пусть вас не пугает тот факт, что это CoffeeScript, он тоже отлично работает с обычным JS ...

ПытатьсяКитти, Это всего 1,4 КБ, и его единственная зависимость - EJS.

Пожалуйста, также оформить заказJQuery-Клейпул.

jquery-claypool - это небольшая, быстрая, рельсовая инфраструктура mvc, построенная на jquery, основанная на моем опыте работы с django, rails, spring и т. д. Она очень легкая и работает как на клиентских, так и в серверных средах.

это обеспечивает структуру маршрутизации для чистого mvc, регистрации категорий, фильтров (aop), ленивого создания контроллеров, инверсии управления, соглашения по конфигурации и не намного больше по дизайну.

он не делает ничего, что jquery уже делает, ощущается как jquery и работает как хорошая структура: просто.

JQuery-Клейпул

Надеюсь, вы это проверите.

 Pepijn17 июн. 2011 г., 14:57
Как вы видите Claypool по отношению к Backbone?

Просто чтобы сделать список немного более полным:ActiveJS

Я бы не назвал этомикро-рамка, но она выглядит интереснойКапучино веб-фреймворк

Еще один, легкий и крошечный:http://jqnano.oleksiy.pro/

Есть популярныйBackbone.js

Maverick - это небольшой JavaScript MVC-фреймворкhttp://maverick.round.ee

Действительно есть:http://www.javascriptmvc.com/

Я думаю, вы найдете это достаточно!

 Tad Donaghe22 дек. 2008 г., 19:32
Этот сайт имеет мигающий тег. o_0
 Josh25 авг. 2009 г., 21:29
этот сайт не загружается для меня вообще
 Filip Ekberg26 авг. 2009 г., 12:01
Попробуйте еще раз, должно работать снова.

Другой:MooTools-MVC

Если вы хотите, чтобы все было под контролем и было достаточно простым, вам может не понадобиться фреймворк, а просто реализовать собственный шаблон mvc. Просто проверьте эту статью:Модель-представление-контроллер (MVC) с JavaScript Алекс Неткачов о 2006.

Если ваши требованиядействительно просто, вы можете написать свой собственный простой как MVCАлекс Неткачов сделал.

Его примеры основаны на dojo (Примечание: они не работают для меня на его странице из-за отсутствующего файла dojo.js), но вы можете следовать шаблону в простом Javascript.

Stapes.js

Полное раскрытие: я автор этой библиотеки :)

Если вы ищете что-то действительно крошечное (1.5kb minified / gzipped), посмотрите, и скажите мне, если вам это нравится.

 feklee28 июл. 2012 г., 14:57
Отлично смотрится с первого взгляда! Мне нравится ваш акцент на наследовании прототипов (не симулированные классы и не запутанныеnew оператор). То, что кажется ненужным, является еще однимeach а такжеmap, У меня их уже естьUnderscore.js а такжеJQuery.

Магистраль - отличный легкий каркас. Попробуйте это:http://backbonejs.org/

 IsmailS20 окт. 2011 г., 13:15
Как использовать Backbone способом MVC?
 Matt01 апр. 2012 г., 21:24
@TristanJuricek есть ли бесплатная альтернатива peepcode?
 Aaron Greenlee11 янв. 2011 г., 18:33
Я так рад, что нашел Backbone.
 Ivanhoe11 янв. 2011 г., 21:46
Я согласен, один, чтобы проверить определенно!
 Chris Jaynes19 мая 2012 г., 07:27
Пропустите Backbone и идите прямо к позвоночнику. У него гораздо более логичная реализация MVC.

Ваш ответ на вопрос