Какова подходящая детализация для взглядов Backbone.js?

StackOverflow https://stackoverflow.com/questions/4463136

Вопрос

Я принимаю Backbone.js, чтобы сделать небольшой угол существующее большое веб -приложение. Анкет Если это пойдет хорошо, я вижу, как Backbone.js растет, чтобы охватить все приложение, придавая некоторую столь необходимую структуру для органически выращенного применения. Это предисловие. Теперь за проблему:

У меня есть поле выбора, которое позволяет пользователю выбирать план чтения. Когда выбор меняется, представление обновляет некоторый описательный текст, интерфейс календаря и небольшой виджет для маркировки сегодняшних показаний как завершенных. Виджет будет иметь флажок для каждого чтения (один или несколько) в сегодняшней записи и кнопка для продолжения чтения на следующий день. (Вы можете увидеть текущую незаконную версию этого интерфейса (за исключением схемы завершения) с правой стороны от существующее приложение.

Какова подходящая детализация для каждого представления? Я определил следующие «скромные биты»:

  • Сама вкладка, которая охватывает все содержащие элементы управления.
  • Поле выбора
  • Описательный текст, который отвечает на поле выбора
  • Календарь, который отвечает на поле выбора
  • Виджет показаний, который отвечает на поле выбора и содержит:
    • Необязательно, кнопка «запуска», которая активирует текущий план.
    • При активации один или несколько флажков, соответствующих индивидуальным показаниям в сегодняшней записи.
    • При активации кнопка «Далее», которая завершает сегодняшнюю запись и отображает следующую.

Должен ли каждый из этих пулевых баллов получить свое мнение? Просто основные части (вкладка, выберите поле, виджет)? Первый приведет к довольно много просмотров. Первое, кажется, может привести к чрезмерным реализациям представления. Что лучше?

Примечание: Я понимаю, что это можно интерпретировать как дико субъективный вопрос, но я все еще обнимаю голову по Backbone.js и JavaScript/Dom MVC Patterns, и я надеюсь, что есть узкие «это то, что задумано/лучше всего работает лучше "От более опытных практикующих Backbone.js. Спасибо!

Это было полезно?

Решение

Там нет окончательного ответа на ваш вопрос. Вы можете взглянуть на гранулярность Sproutcore для экземпляров.

Вы также можете посмотреть http://vimeo.com/17186379 где Иегуда Кац иллюстрирует трудности обновления различных частей страницы.

Одним из способов просмотра это было бы проверить, какую часть следует обновить с различными изменениями/событиями модели и попытаться минимизировать re -рендеринг.

Извините, нет хороших ответов, как вы указали;)

Другие советы

В целом, гранулярность ваших взглядов будет зависеть от поиска баланса между сложностью конкретной части пользовательского интерфейса и чрезмерной фрагментацией взглядов на маленькие кусочки. Я, вероятно, не использовал бы представление для чего -то такого маленького, как кнопка (класс CSS - это все, что вам действительно нужно для этого).

В вашем конкретном случае у меня, вероятно, был бы представление о виджете календаря - так что его можно легко использовать в других местах в приложении - и представление для всей вкладки «Волисты». Остальное может быть сделано с помощью связывания событий.

Что касается обновлений моделей и повторного использования, вся идея с костяком заключается в отделении этой проблемы от взглядов. Модели испускают события «Изменение», когда их атрибуты изменяются, и любые представления на странице в то время были на странице, и отображают данные этой конкретной модели, будут уведомлены об изменении и могут обновить себя.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top