Javascript MVC frameworks

В наши дни доступно множество фреймворков Javascript MVC (Backbone.js, Cappuccino, Ember.js, GWT и т.д.), каждый из которых имеет свои собственные положительные и отрицательные стороны. Мои вопросы:

  • Каковы фактические преимущества, которые обеспечивает среда MVC над обычным Javascript?
  • Являются ли все рамки в основном основаны на jQuery?
  • Как вы решаете, какие рамки нужно использовать? Каковы вопросы, которые необходимо задать перед тем, как определить некоторые рамки?
  • Один конкретный вопрос, который у меня есть относительно MVC, есть некоторые рамки, которые обновляют представление, как только модель/данные меняются... Так возможно ли это через AJAX?

Пожалуйста, дайте мне знать в очень простых практических терминах.

Ответ 1

  • Преимущества:

    • Код многократного использования
    • Разделение логики представления из бизнес-логики
    • Легче поддерживать/документировать
  • Нет. Например, происхождение ExtJS происходит из GWT (если я правильно помню)

  • Вы смотрите на сложность и масштаб того, что вы пытаетесь сделать, и взвесить плюсы и минусы кривых/расходов обучения (как времени, так и денег) в отношении возможностей, которые вам нужны. Например, если вам нужны мощные сетки данных и расширенные виджеты, extJS может быть способом. Однако, если вам нужно что-то более легкое, Django может быть лучшим вариантом (просто пример).
  • Да, все это делается через AJAX. В ExtJS 4 при добавлении записи в хранилище, прикрепленном к сетке, сетка автоматически обновляется.

Надеюсь, это поможет.

Ответ 2

MVC предоставляет архитектурные преимущества по сравнению со стандартным JavaScript - он помогает вам лучше писать организованный и, следовательно, более удобный код. Это образец, который использовался и широко протестирован на нескольких языках и поколениях программистов. Скорее всего, если вы хотите что-то сделать, кто-то еще это сделал, поэтому использование проверенного временем шаблона поможет вам использовать преимущества шаблонов, не допуская ошибок, сделанных ранее программистами, тем самым экономя ваше время и усилия.

Магистраль не основана на jQuery, но она совместима с jQuery и дает вам некоторые положительные эффекты, если вы ее используете, например. в представлениях он дает вам кешированную ссылку на контейнер представлений в $el. Но если вы используете Zepto вместо jQuery, $el заверяется в функциональность Zepto, а не jQuery.

YUI имеет компоненты MVC и полностью не основан на jQuery;)

Каждый решает, какую структуру использовать, исходя из потребностей текущего проекта, документации для структуры, сообщества, на котором он основан, и т.д. Точно так же, как выбор какой библиотеки JS для использования или какой бэкэнд-каркас использовать, и т.д. Какое право для одного человека/проекта может быть неправильным для другого человека/проекта

Ответ 3

  • Каковы фактические преимущества, которые предоставляет среда MVC для обычного Javascript?
  • Рамки полезны, когда вам нужно организовать свой код и отдельные проблемы в своем приложении.
  • Являются ли все фреймворки в основном основаны на jQuery?
  • Структуры MVC не имеют ничего общего с jQuery, jQuery в основном здесь, чтобы выполнять манипуляции с DOM, анимацию, но у них могут быть функции, которые можно найти в jquery, например, в System System, Ajax и т.д. Как вы решаете, какие рамки нужно использовать? Каковы вопросы, которые нужно задать перед тем, как определить некоторые рамки?
  • Вам нужно протестировать их, написать приложение без фреймворков, а затем попытаться реорганизовать свой код с помощью фреймворка и посмотреть, с ним легко работать или нет.
  • Один конкретный вопрос, который у меня есть относительно MVC, есть некоторые рамки, которые обновляют представление сразу после изменения модели/данных... Так возможно ли это через AJAX?

  • все они делают это как-то, что цель MVC. когда модель изменяется, представление уведомляется и повторно отображает себя... но они делают это по-разному.

Теперь, на мой взгляд, с jQuery, на самом деле не нужна "внешняя" MVC-инфраструктура, потому что jQ уже имеет встроенную систему событий, множество вспомогательных функций и javascript-объектов достаточно динамичны, чтобы привязывать к ним любое поведение "на лету" без определения "классов" объектов.

Я хочу сказать, что вы можете сделать свой собственный MVC с помощью jQuery, все инструменты уже находятся в библиотеке.

ЕСЛИ вам нужны другие вещи, такие как "маршрутизатор", помощники проверки подлинности, блокировка и т.д.... тогда MVC-инфраструктура - это путь.