Ответ 1
Магистраль - это отличная легкая рама. Попробуйте: http://backbonejs.org/
Есть ли какой-либо клиентский JavaScript MVC (micro-) frameworks?
У меня довольно сложная форма HTML, и она выиграет от шаблона MVC.
Я полагаю, что хорошее решение обеспечит следующее:
Ajax, комета, JSONP и все, что джаз серьезно переборщил.
Магистраль - это отличная легкая рама. Попробуйте: http://backbonejs.org/
JavaScriptMVC - отличное решение. Все это подход плагина позволяет вам выбирать только те функции, которые вам нужны. Начиная с версии 2.0, он основан на jQuery.
При постепенном улучшении вашего сайта, который остался до пользователя, поскольку JMVC предоставляет только средний уровень для разработки - вам решать сделать этот выбор дизайна самостоятельно.
Однако JavaScriptMVC является просто лучшей библиотекой JavaScriptMVC общего назначения из-за своих мощных контроллеров делегирования событий.
Делегирование событий позволяет избежать необходимости прикреплять обработчики событий и просто создавать правила для вашей страницы.
Наконец, JMVC намного больше, чем архитектура MVC. Он имеет все части цикла разработки:
Spine имеет API, похожий на Backbone, но он намного меньше. Он имеет прототипное наследование.
AngularJS хорошо работает вместе с jQuery и очень поможет вам с структурой MVC и строгим разделением проблем.
Полная тестовая среда и инъекция зависимостей включены...
Проверьте это на http://angularjs.org
Действительно есть: http://www.javascriptmvc.com/
Я думаю, вы найдете это достаточно!
Я думаю, что это похоже на что-то, что вы должны проверить: http://knockoutjs.com/
(В качестве программиста silverlight/wpf это была библиотека, которая заставила меня наконец начать изучать javascript. Она основана на модели Model-View-View-Model (MVVM), так как для меня сейчас кажется хорошим выбором! )
Существует популярный Backbone.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>
Полное раскрытие: я являюсь автором этой библиотеки:)
Если вы ищете что-то действительно крошечное (1.5kb minified/gzipped), посмотрите и скажите, нравится ли вам это.
Если ваши требования действительно просты, вы можете написать свой собственный простой MVC, например Alex Netkachov.
Его примеры построены на dojo (Примечание: они не работают для меня на его странице из-за отсутствующего файла dojo.js), но вы можете следовать шаблону в простом Javascript.
Вероятно, это слишком сложно, но SproutCore - это структура MVC, и она не работает 't выглядит тяжелее, чем JavaScriptMVC или TrimPath Junction.
К сожалению, ни один из них, похоже, не построен по принципу прогрессивного улучшения.
Популярная среда ActionScript MVC PureMVC была недавно перенесена на JavaScript. У меня еще не было возможности попробовать это, но я уверен, что это хорошо.
Просьба также проверить jquery-claypool.
jquery-claypool - это небольшая, быстрая, плавная инфраструктура mvc, построенная на jquery, основанная на моем опыте работы с django, rails, spring и т.д. Его очень легкий вес и работает как на клиентском, так и в серверном средах.
он обеспечивает структуру маршрутизации для чистого mvc, регистрации категорий, фильтров (aop), ленивого создания контроллеров, инверсии управления, согласования по конфигурации и не намного большего по дизайну.
он не делает ничего, что уже делает jquery, похоже на jquery и работает как хорошая структура: просто.
Надеюсь, вы проверите это.
Ямал - самый легкий, которого я видел. Он также основан на jQuery (бонус). Не использовали.
Если вы хотите держать вещи под контролем и достаточно простыми, вам может не понадобиться фреймворк, а просто реализовать свой собственный шаблон mvc. Просто проверьте эту статью: Модель-View-Controller (MVC) с JavaScript от Alex Netkachov в 2006 году.
Попробуйте kitty. Это всего лишь 1.4KB, и его единственная зависимость - EJS.
Вот список всех открытых JavaScript-фреймворков с открытым исходным кодом, известных человечеству.
http://getopensource.info/explore/javascript/framework/
Или только рамки MVC
http://getopensource.info/explore/javascript/mvc/
Раскрытие информации: Я разработчик этого веб-сайта.
UPDATE 2016: Sammy.js, похоже, заброшен.
Текст с сайта:
Небольшая webframework с классом.
Я бы не назвал это микро-каркасом, но это наверняка выглядит интересно: Cappuccino Web Framework
CorMVC, легко понять и начать с jquery based и не зависит от какой-либо серверной технологии
Я разработал очень простую структуру Javascript MVC под названием MCV. Он не выполняет именно то, что вы просите, но он легко расширяется с помощью помощников. Во всяком случае, это определенно микро (1,9kb упакован).
Он работает более или менее, как Джамал, но я решил бросить свое по двум причинам:
Просто, чтобы сделать список немного более полным: ActiveJS
Я поддержал AngularJS (полное раскрытие, я участвую в ограниченном использовании с усилиями angular dev), и я очень взволнован этим. Я сделал параллельное сравнение, взяв одну из функций для внутреннего проекта (извините, у меня нет подписки) и реализовано как в AngularJS, так и в Backbone. Это было отличное упражнение, и, в конце концов, я очень склоняюсь к Angular. Основные разработчики отлично справляются с ответами на вопросы, и они отлично справились со встроенной привязкой данных, тестированием unit/e2e и документацией. Его все еще в бета-версии с 1.0 выходит в ближайшем будущем. Бета очень стабильна.
Существует немного сдвига парадигмы, и они используют совершенно другой подход, чем большинство. Интеграция ваших любимых плагинов jquery требует немного усилий, но выполнима и выполнена (angular -contrib on github).
Я скажу (и это проблема для большинства js-ориентированных фреймворков), убедитесь, что вы исследуете, как сделать ваш контент оптимизированным для SEO (если это важно для вас). Начиная с присоединения к сообществу angular в июне, я заметил, что интерес растет, и многие люди делают сообщения о том, что они смотрели на Backbone и другие, но действительно любят то, что они видят в Angular.
Была привязана к ключевому значению инфраструктура JavaScript под названием "Coherent", которая была вдохновлена Apple Cocoa Bindings. Рамка была куплена Apple, но есть еще старая копия в http://github.com/trek/coherentjs/tree/master.
Maverick - небольшая инфраструктура JavaScript MVC - http://maverick.round.ee
Я тоже собираюсь подключиться сюда - AFrameJS работает с jQuery, MooTools и Prototype.
Попробуйте jQuery на основе javascript MVC framework.
Еще один: MooTools-MVC
Еще один, легкий и крошечный: http://jqnano.oleksiy.pro/
Can.js имеет все, что вам нужно, и весит всего лишь 8 килобайт. Он взял лучшие бит от JavaScriptMVC и переработал его в одну небольшую, но в то же время систему kickass с наблюдателями, виджеты, привязку, работы. Он совместим с основными структурами (jQuery, Dojo Toolkit, MooTools и т.д.). Документация отличная, и авторы реагируют. Это определенно стоит посмотреть.