2012-10-09 2 views
0

Я хотел попробовать использовать knockout.js, но на самом деле он не нужен. Тем не менее, я создаю новый экран и задаюсь вопросом, стоит ли пытаться делать в knockout.js над jQuery.Действительно ли Knockout.js подходит для типа экрана?

enter image description here

Это календарь повтор экран назначение Google. Теперь то, что я пытаюсь сделать, довольно похоже на их, возможно, флажки, dropdownlists и переключатели.

Каждый выбор повлияет на итоговую часть. Поэтому, если я сниму флажок «F», тогда резюме должно обновиться.

Будет ли нокаут упростить для меня сборку итоговой части? Или это что-то еще, что может мне помочь?

ответ

1

Это то, что вы могли бы сделать с Knockout.js. KO не обязательно должна быть заменой для jQuery, а более высокого уровня, чтобы помочь с привязкой к модели и представлению (т. Е. VMMV). jQuery по-прежнему отлично подходит для анимации, и, самое главное, AJAX звонит. В зависимости от того, что вы делаете, KO и jQuery могут хорошо ладить.

KO может быть трудно оторвать голову, но как только вы это сделаете, это довольно удивительно, и некоторые вещи просты. Например, я столкнулся только раздел, где вы нажимаете на день недели и его отображения:

http://codepen.io/CWSpear/pen/IbkvJ

Если ничего не проверяли, ничего не показывает, но как только вы начинаете проверять вещи, это показывает, что дни (т.е. Weekly on Thursday).

JavaScript - это всего лишь несколько строк. Магия привязок:

Каждый вход имеет атрибут data-bind="checked: days", что означает, когда они проверены, они будут автоматически добавляются в days переменной в моей ViewModel, которая является ko.observeableArray. Это означает, что он смотрит эти флажки, и как только произойдет изменение, он будет уведомлять все, что от него зависит.

Которая, как оказалось, переменная summary, которая является ko.computable (которая является вычислимой наблюдаемой). Он имеет атрибут: data-bind="text: summary, visible: days().length > 0". Это означает, что это видно только в том случае, если days непусто, а текст определен в нашем javascript как «Еженедельно в [список days]».

0

Я использую нокаут около 18 месяцев в разных проектах , По моему опыту, Knockout чрезвычайно полезен для привязки поведения к формированию состояния, а затем в конечном итоге сбрасывает эти формы на ваш сервер.

На мой взгляд, большие минусы Нокаут являются:

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

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

Смежные вопросы