MVC: Самый ценный кодер… Это не я… пока.

Понимание моделей, представлений и контроллеров.

Что такое МВК?

Модель-представление-контроллер — это шаблон архитектуры программного обеспечения, используемый для разделения целей различных компонентов, что позволяет легко повторно использовать код и легко находить проблемы из-за изолированных рассуждений. Моим первым знакомством с MVC было использование библиотеки backbone.js, но на самом деле в магистральной сети отсутствует часть «Контроллер» MVC, а вместо контроллеров магистраль использует коллекции, которые представляют собой просто массив моделей.

МОДЕЛИ

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

  1. У моделей не больше знаний, чем у других моделей того же типа.
  2. Модели не знают о DOM или представлениях.
  3. Вмешиваться в доступ к свойствам (т.е. получать/устанавливать)

На третьей неделе мы создали музыкальную библиотеку под названием myTunes, которая использует магистральную библиотеку. У модели в myTunes были песни и приложение. В myTunes все модели песен имеют одинаковые триггеры событий, и все модели приложений (была только одна) имеют инициализированные модели или коллекции, такие как currentSong, songQueue и прослушиватели событий. Важно отметить, что обе модели ничего не делают с DOM или представлением.

ВЗГЛЯДЫ

Вид — это визуальное представление своей модели. Представление прикрепляется к модели и обновляется при изменении данных в модели. Представление должно отвечать только за один тип модели. Это действительно важно для представлений, потому что это позволяет программе работать на нас. Мы можем динамически отображать новую информацию без жесткого кодирования изменений в DOM. В myTunes, поскольку в магистральной сети отсутствует конкретный компонент контроллера, представление обрабатывает взаимодействие с пользователем. Вот пример представления для приложения:

Самая важная вещь, которую нужно собрать из фотографий, — это функция рендеринга в каждом представлении. В этой части каждое представление прикрепляет html к DOM. В функции рендеринга представления библиотеки вы можете видеть, что коллекция песен прикрепляется к собственному представлению записи библиотеки в функции .map. Каждое представление входа в библиотеку прослушивает собственное событие щелчка, которое инициирует постановку в очередь для модели, к которой подключено.

КОНТРОЛЛЕРЫ….но на самом деле КОЛЛЕКЦИИ

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

Контроллер может отправлять модели команды для обновления ее состояния (например, для редактирования документа). Он также может отправлять команды связанному с ним представлению, чтобы изменить представление модели в представлении.

-Википедия

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

Коллекция — это не что иное, как массив, в котором хранятся модели одного типа… в определенном порядке. Самая важная часть этого кода — первая строка «model: SongModel». Это говорит нам и коллекции, какой тип модели ожидается. Мы также можем предоставить прослушиватели событий коллекции для событий изменения, добавления, удаления, выборки. Наконец, чтобы еще больше подчеркнуть, что коллекция — это просто сохраненные модели… Если мы разберем коллекцию SongQueue, мы увидим, что она никогда не манипулирует DOM напрямую, что соответствует правилу 2 моделей. Дополнительное примечание. Коллекции обычно содержат модели одного типа, но модели не привязаны к какой-либо конкретной коллекции.

(например, Модель: Яблоко можно использовать в коллекции: Фрукты или Коллекция: Вкусно)